Download Monitor - Version 4.7.3

Version Description

  • 1.11.2022 = Fixed: Reports not working when cache is set ( #1113 ) Fixed: Security update regarding directory traversal ( #1111 ) Fixed: Admin Downloads list order by title ( #1110 ) Fixed: Fallback for links that use the XHR triggering classes ( #1109 ) Fixed: Cannot modify headers error when setting cookie ( #1108 ) Changed: Media Library - restored default view and kept filter for Download Monitor used files ( #1107 ) Fixed: Media Library visual indicator for Download Monitor protected files ( #1106 ) Changed: Reconsider the Download's post meta for download count, priorly used as main download count info ( #1105 ) Fixed: Warning when trying to read current screen ( #1104 ) Fixed: Count downloads when the reports/logs are disabled ( #1103 )
Download this release

Release Info

Developer raldea89
Plugin Icon 128x128 Download Monitor
Version 4.7.3
Comparing to
See all releases

Code changes from version 4.7.2 to 4.7.3

assets/css/admin.css CHANGED
@@ -1,6 +1,6 @@
1
  .post-type-dlm_download .dlm-page-header {
2
  border-bottom: 1px solid #ccc;
3
- padding: 15px 60px;
4
  display: flex;
5
  justify-content: space-between;
6
  background: #fff;
@@ -669,6 +669,9 @@ table.wp-list-table .column-thumb img {
669
  background: rgba(206, 206, 206, 0.5);
670
  padding: 3px 5px;
671
  }
 
 
 
672
  #download-monitor-file .dlm-metaboxes-wrapper .drag-drop #drag-drop-area {
673
  border: 4px dashed #c3c4c7;
674
  height: 140px;
@@ -1216,7 +1219,7 @@ table.wp-list-table .column-thumb img {
1216
  position: relative;
1217
  }
1218
  .dlm_download_page_download-monitor-reports #wpcontent .dlm-reports {
1219
- margin: 40px;
1220
  position: relative;
1221
  /**
1222
  Reports header and actions
1
  .post-type-dlm_download .dlm-page-header {
2
  border-bottom: 1px solid #ccc;
3
+ padding: 15px 20px;
4
  display: flex;
5
  justify-content: space-between;
6
  background: #fff;
669
  background: rgba(206, 206, 206, 0.5);
670
  padding: 3px 5px;
671
  }
672
+ #download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file .wpchill-tooltip {
673
+ float: none;
674
+ }
675
  #download-monitor-file .dlm-metaboxes-wrapper .drag-drop #drag-drop-area {
676
  border: 4px dashed #c3c4c7;
677
  height: 140px;
1219
  position: relative;
1220
  }
1221
  .dlm_download_page_download-monitor-reports #wpcontent .dlm-reports {
1222
+ margin: 40px 20px 0 0;
1223
  position: relative;
1224
  /**
1225
  Reports header and actions
assets/css/admin.less CHANGED
@@ -20,7 +20,7 @@
20
 
21
  .dlm-page-header {
22
  border-bottom: 1px solid #ccc;
23
- padding: 15px 60px;
24
  display: flex;
25
  justify-content: space-between;
26
  background: #fff;
@@ -602,6 +602,10 @@ table.wp-list-table {
602
  padding: 3px 5px;
603
  }
604
  }
 
 
 
 
605
  }
606
  }
607
 
@@ -1177,6 +1181,9 @@ table.wp-list-table {
1177
 
1178
  .dlm-reports {
1179
 
 
 
 
1180
  .dlm-reports-spinner {
1181
  position: absolute;
1182
  top: 0;
@@ -1207,9 +1214,6 @@ table.wp-list-table {
1207
  }
1208
  }
1209
 
1210
- margin: 40px;
1211
- position: relative;
1212
-
1213
  .reports-block {
1214
  background-color: #FFF;
1215
  margin-top: 25px;
20
 
21
  .dlm-page-header {
22
  border-bottom: 1px solid #ccc;
23
+ padding: 15px 20px;
24
  display: flex;
25
  justify-content: space-between;
26
  background: #fff;
602
  padding: 3px 5px;
603
  }
604
  }
605
+
606
+ .wpchill-tooltip{
607
+ float:none;
608
+ }
609
  }
610
  }
611
 
1181
 
1182
  .dlm-reports {
1183
 
1184
+ margin: 40px 20px 0 0;
1185
+ position: relative;
1186
+
1187
  .dlm-reports-spinner {
1188
  position: absolute;
1189
  top: 0;
1214
  }
1215
  }
1216
 
 
 
 
1217
  .reports-block {
1218
  background-color: #FFF;
1219
  margin-top: 25px;
assets/css/admin.min.css CHANGED
@@ -1 +1 @@
1
- .post-type-dlm_download .dlm-page-header{border-bottom:1px solid #ccc;padding:15px 60px;display:flex;justify-content:space-between;background:#fff;width:calc(100% + 20px);box-sizing:border-box;margin-left:-20px}.post-type-dlm_download .dlm-page-header .dlm-header-links{margin-left:-20px}.post-type-dlm_download .dlm-page-header .dlm-header-links a span{vertical-align:middle;position:relative;top:-2px;padding-right:10px;font-size:16px}.post-type-dlm_download .dlm-page-header .dlm-header-logo img{max-height:35px}.post-type-dlm_download td.column-shortcode .hidden{display:none}.post-type-dlm_download .inline-edit-row .inline-edit-col-dlm .inline-edit-col-dlm-inner{margin-top:10px}.dlm-settings-sub-nav{margin:0 0 10px 0;width:100%;border-bottom:1px solid #ccc;box-shadow:0 1px 1px rgba(0,0,0,.04)}.dlm-settings-sub-nav li{margin-right:10px;margin-bottom:-2px}.dlm-settings-sub-nav a{padding:13px;display:block;outline:0;box-shadow:none}.dlm-settings-sub-nav .active-section{margin-bottom:-2px}.dlm-settings-sub-nav .active-section a{border-bottom:4px solid #000;padding-bottom:9px;margin-bottom:-2px;font-weight:600}.dlm-admin-settings #setting-dlm_decimal_separator,.dlm-admin-settings #setting-dlm_thousand_separator{width:50px}.dlm-admin-settings table td{padding:15px 0}.dlm-admin-settings h3{margin:2em 0 0}.dlm-admin-settings .form-table label.dlm-radio-label{display:block;margin-bottom:5px}.dlm-admin-settings .form-table label.dlm-enhanced-radio-label{position:relative;padding:10px 15px;display:inline-block;margin-bottom:15px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dlm-admin-settings .form-table label.dlm-enhanced-radio-label span{z-index:3;position:relative}.dlm-admin-settings .form-table label.dlm-enhanced-radio-label input[type=radio]{position:relative;z-index:2}.dlm-admin-settings .form-table label.dlm-enhanced-radio-label input[type=radio]+div.dlm-radio__selectable-area{position:absolute;width:100%;height:100%;border-radius:20px;display:block;top:0;left:0;opacity:1;border:1px solid grey}.dlm-admin-settings .form-table label.dlm-enhanced-radio-label input[type=radio]:checked+div.dlm-radio__selectable-area{border-color:green;background-color:rgba(0,128,0,.6)}.dlm-admin-settings .form-table label.dlm-enhanced-radio-label input[type=radio]:checked+div.dlm-radio__selectable-area+span{color:#fff}.dlm-admin-settings .dlm_settings{padding:5px 0}.dlm-admin-settings .dlm_settings>th{padding:15px 5px}.dlm-admin-settings .dlm_settings>td{padding:15px 5px 15px 0}.dlm-admin-settings .dlm_install_plugin_setting{background:#fff;padding:0 15px;border-bottom:1px solid #ccc;border-top:1px solid #ccc}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group,.dlm-admin-settings .dlm_group_setting td{margin:0 auto;padding:0!important}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group .dlm-groupped-settings__box,.dlm-admin-settings .dlm_group_setting td .dlm-groupped-settings__box{margin:5px 0 5px 0}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group .dlm-groupped-settings__box .postbox,.dlm-admin-settings .dlm_group_setting td .dlm-groupped-settings__box .postbox{padding:0;margin:0 auto}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group .dlm-groupped-settings__box .postbox .hndle,.dlm-admin-settings .dlm_group_setting td .dlm-groupped-settings__box .postbox .hndle{margin:0;padding:8px;font-weight:lighter}.dlm-admin-settings .dlm_group_setting .handle-actions button{box-shadow:none}.dlm-admin-settings .dlm_group_setting h2.hndle{cursor:pointer}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group__content{padding:15px}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group__content .dlm-accordeon-group__setting{padding:35px 0;display:flex;flex-wrap:wrap;flex-direction:row;justify-content:space-between}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group__content .dlm-accordeon-group__setting .dlm-accordeon-group__setting-title{font-size:16px;margin-bottom:15px;font-weight:700;width:20%}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group__content .dlm-accordeon-group__setting .dlm-accordeon-group__setting-content{width:80%}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group__content .dlm-accordeon-group__setting .description{font-style:italic}ul.download_monitor_file_browser{list-style:none outside;margin:0;border:1px solid #ddd;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background:#f9f9f9;padding:5px 5px;-moz-box-shadow:inset 0 0 0 1px #fff;-webkit-box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px #fff}ul.download_monitor_file_browser li{padding:0;margin:0}ul.download_monitor_file_browser li a{color:#21759b;display:block;padding:4px 0 4px 4px;text-decoration:none}ul.download_monitor_file_browser li a:hover{background-color:#eaf2fa}ul.download_monitor_file_browser li a:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f123";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.folder:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f318";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-3g2:before,ul.download_monitor_file_browser li a.filetype-3gp:before,ul.download_monitor_file_browser li a.filetype-asf:before,ul.download_monitor_file_browser li a.filetype-asx:before,ul.download_monitor_file_browser li a.filetype-avi:before,ul.download_monitor_file_browser li a.filetype-mov:before,ul.download_monitor_file_browser li a.filetype-mp4:before,ul.download_monitor_file_browser li a.filetype-mpg:before,ul.download_monitor_file_browser li a.filetype-rm:before,ul.download_monitor_file_browser li a.filetype-srt:before,ul.download_monitor_file_browser li a.filetype-vob:before,ul.download_monitor_file_browser li a.filetype-wmv:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f126";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-aif:before,ul.download_monitor_file_browser li a.filetype-iff:before,ul.download_monitor_file_browser li a.filetype-m3u:before,ul.download_monitor_file_browser li a.filetype-m4a:before,ul.download_monitor_file_browser li a.filetype-mid:before,ul.download_monitor_file_browser li a.filetype-midi:before,ul.download_monitor_file_browser li a.filetype-mp3:before,ul.download_monitor_file_browser li a.filetype-mpa:before,ul.download_monitor_file_browser li a.filetype-ra:before,ul.download_monitor_file_browser li a.filetype-wav:before,ul.download_monitor_file_browser li a.filetype-wma:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f127";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-ai:before,ul.download_monitor_file_browser li a.filetype-bmp:before,ul.download_monitor_file_browser li a.filetype-dds:before,ul.download_monitor_file_browser li a.filetype-eps:before,ul.download_monitor_file_browser li a.filetype-gif:before,ul.download_monitor_file_browser li a.filetype-ico:before,ul.download_monitor_file_browser li a.filetype-jpeg:before,ul.download_monitor_file_browser li a.filetype-jpg:before,ul.download_monitor_file_browser li a.filetype-png:before,ul.download_monitor_file_browser li a.filetype-ps:before,ul.download_monitor_file_browser li a.filetype-psd:before,ul.download_monitor_file_browser li a.filetype-pspimage:before,ul.download_monitor_file_browser li a.filetype-svg:before,ul.download_monitor_file_browser li a.filetype-tga:before,ul.download_monitor_file_browser li a.filetype-thm:before,ul.download_monitor_file_browser li a.filetype-tif:before,ul.download_monitor_file_browser li a.filetype-yuv:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f128";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li.nofiles{color:#999;font-style:italic;padding:4px 0}ul.download_monitor_file_browser li ul{list-style:none outside;margin:0;padding:0 0 0 28px}ul.download_monitor_file_browser li ul.loading{background:url(../images/ajax-loader.gif) no-repeat 24px 0;height:32px}table.wp-list-table .column-thumb{width:44px;text-align:center;white-space:nowrap}table.wp-list-table .column-dlm_download_cat,table.wp-list-table .column-dlm_download_tag,table.wp-list-table .column-file{width:11%!important}table.wp-list-table .column-file,table.wp-list-table .column-title{width:17%!important}table.wp-list-table .column-download_id,table.wp-list-table .column-version{width:5em}table.wp-list-table th.column-download_count span:first-child,table.wp-list-table th.column-featured span:first-child,table.wp-list-table th.column-locked_download span:first-child,table.wp-list-table th.column-members_only span:first-child,table.wp-list-table th.column-redirect_only span:first-child,table.wp-list-table th.column-thumb span:first-child{float:none;display:inline-block;width:1em;height:1em;line-height:1em;padding:2px 0 0 0;overflow:hidden}table.wp-list-table th.column-download_count .sorting-indicator,table.wp-list-table th.column-featured .sorting-indicator,table.wp-list-table th.column-locked_download .sorting-indicator,table.wp-list-table th.column-members_only .sorting-indicator,table.wp-list-table th.column-redirect_only .sorting-indicator,table.wp-list-table th.column-thumb .sorting-indicator{float:right}table.wp-list-table th.column-thumb{width:52px;text-align:center}table.wp-list-table th.column-thumb span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f128";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-download_count{width:5em}table.wp-list-table th.column-download_count span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f346";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-locked_download,table.wp-list-table th.column-members_only{width:3.5em}table.wp-list-table th.column-locked_download span:first-child:before,table.wp-list-table th.column-members_only span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f160";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-redirect_only{width:3.5em}table.wp-list-table th.column-redirect_only span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f103";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-featured{width:3.5em}table.wp-list-table th.column-featured span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f155";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table td.column-download_count,table.wp-list-table td.column-featured,table.wp-list-table td.column-locked_download,table.wp-list-table td.column-members_only,table.wp-list-table td.column-redirect_only{text-align:left;padding-left:11px}table.wp-list-table td.column-download_count span.na,table.wp-list-table td.column-featured span.na,table.wp-list-table td.column-locked_download span.na,table.wp-list-table td.column-members_only span.na,table.wp-list-table td.column-redirect_only span.na{color:#999;width:1em;height:1em;line-height:1em;display:inline-block;overflow:hidden;vertical-align:middle}table.wp-list-table td.column-download_count span.na:before,table.wp-list-table td.column-featured span.na:before,table.wp-list-table td.column-locked_download span.na:before,table.wp-list-table td.column-members_only span.na:before,table.wp-list-table td.column-redirect_only span.na:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table td.column-download_count span.yes,table.wp-list-table td.column-featured span.yes,table.wp-list-table td.column-locked_download span.yes,table.wp-list-table td.column-members_only span.yes,table.wp-list-table td.column-redirect_only span.yes{width:1em;height:1em;line-height:1em;display:inline-block;overflow:hidden;vertical-align:middle}table.wp-list-table td.column-download_count span.yes:before,table.wp-list-table td.column-featured span.yes:before,table.wp-list-table td.column-locked_download span.yes:before,table.wp-list-table td.column-members_only span.yes:before,table.wp-list-table td.column-redirect_only span.yes:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f147";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table .column-thumb img{padding:2px;margin:0;border:1px solid #dfdfdf;vertical-align:middle;width:32px;height:32px}#download-monitor-file .inside{padding:0;margin:0}#download-monitor-file .dlm-metaboxes-wrapper .close_all,#download-monitor-file .dlm-metaboxes-wrapper .expand_all{float:right;margin-left:1em;line-height:22px;text-decoration:none}#download-monitor-file .dlm-metaboxes-wrapper .expand_all:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f168";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .close_all:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper p.toolbar{margin:0!important;border-top:1px solid #fff;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-file .dlm-metaboxes-wrapper p.toolbar a.button{float:left;margin:0}#download-monitor-file .dlm-metaboxes-wrapper .fr,#download-monitor-file .dlm-metaboxes-wrapper button.add_attribute,#download-monitor-file .dlm-metaboxes-wrapper button.add_variable_attribute,#download-monitor-file .dlm-metaboxes-wrapper select.attribute_taxonomy{float:right;margin:0 0 0 6px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metaboxes{padding:0 12px 0}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metaboxes.dlm-versions-tab{display:flex;justify-content:space-between;flex-wrap:wrap;border-top:1px solid #dfdfdf}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox-sortable-placeholder{border-color:#bbb;background-color:#f5f5f5;margin:9px 0;border-width:1px;border-style:dashed}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files{padding:0;margin:15px}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file{background:#fff;border-radius:4px}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file .dlm-version-info{display:inline-block}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file .dlm-version-info>span{font-size:13px;font-weight:400;margin-right:20px}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file .dlm-version-info>span:first-child{border:1px solid #ccc;padding:2px 3px;border-radius:5px}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file .dlm-version-info>span .dashicons{margin-right:5px;color:#787C8250}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file .dlm-version-info .dlm-version-info__version{background:rgba(206,206,206,.5);padding:3px 5px}#download-monitor-file .dlm-metaboxes-wrapper .drag-drop #drag-drop-area{border:4px dashed #c3c4c7;height:140px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox-content{padding-top:5px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row{width:calc(100% - 30px);position:relative;margin:10px 0;padding:0 15px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row>*,#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row>.dlm-file-version__file_present>*{width:100%}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row>.dlm-file-version__file_present>:not(.hidden,.dlm-uploader-editor),#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row>:not(.hidden,.dlm-uploader-editor){display:block}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row .dlm-file-version__flex{display:flex;flex-direction:row;justify-content:space-between;align-content:center;align-items:center}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row .dlm-file-version__flex *{display:inline-block;vertical-align:middle}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row .dlm-file-version__inline>*{display:inline-block;vertical-align:middle;margin-right:25px;margin-bottom:25px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row .dlm-file-version__date>*{display:inline-block;width:auto}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row .dlm-file-version__hashes{display:flex;flex-wrap:wrap;justify-content:space-between;margin-top:25px}#download-monitor-file .dlm-metaboxes-wrapper #dlm-new-upload{padding:0 15px}#download-monitor-file .dlm-metaboxes-wrapper #dlm-new-upload,#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__uploader{position:relative}#download-monitor-file .dlm-metaboxes-wrapper #dlm-new-upload .drag-drop .drag-drop-inside,#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__uploader .drag-drop .drag-drop-inside{width:100%;margin-top:25px}#download-monitor-file .dlm-metaboxes-wrapper #dlm-new-upload .drag-drop .drag-drop-inside .dlm_browse_for_file,#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__uploader .drag-drop .drag-drop-inside .dlm_browse_for_file{float:none}#download-monitor-file .dlm-metaboxes-wrapper .dlm-uploading-file{background:#f0f0f0;position:absolute;overflow:hidden;width:100%;height:100%;top:0;left:0;z-index:989}#download-monitor-file .dlm-metaboxes-wrapper .dlm-uploading-file:before{content:"";position:absolute;left:0;height:3px;width:100%;right:0;top:0;background:#d8d8d8}#download-monitor-file .dlm-metaboxes-wrapper .dlm-uploading-file label{text-align:center;padding:5px 0 7px 0;position:absolute;top:50%;transform:translateY(-50%);width:100%}#download-monitor-file .dlm-metaboxes-wrapper .dlm-uploading-file label.hidden{display:none}#download-monitor-file .dlm-metaboxes-wrapper .dlm-uploading-file label span{font-weight:700}#download-monitor-file .dlm-metaboxes-wrapper .dlm-uploading-file .dlm-uploading-progress-bar{background:#2271b1;height:3px;position:absolute;top:0}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox{border:1px solid #cecece;margin:10px 0!important;box-shadow:0 4px 6px rgba(0,0,0,.05)}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3{margin:0!important;padding:10px 10px 8px 10px!important;font-size:1em!important;overflow:hidden;zoom:1;cursor:pointer;position:relative;border-bottom:1px solid #cecece}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3:before{content:"\f140";display:block;font:normal 22px/1 dashicons;speak:none;position:absolute;right:15px;color:#787c82}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3.opened:before{content:"\f142"}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 span.remove_file{float:right;margin-right:30px;color:#787C8250;transition-duration:.2s;position:relative}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 span.remove_file:hover{color:red}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 strong{line-height:30px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 select{font-family:sans-serif}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 .handlediv{background-position:6px 5px!important;display:none!important;height:24px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox:hover h3 .handlediv{display:block}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox .dlm-download-count-button{width:auto;min-width:50px;display:inline-block}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table{width:100%;position:relative;background:#fff;padding:3px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td{text-align:left;padding:6px 6px;vertical-align:top;border:0;line-height:26px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td label{text-align:left;display:block;line-height:21px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td .dlm-uploading-file label{text-align:center}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input{float:left;min-width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td textarea{width:100%;margin:0;display:block;font-size:14px;padding:4px;color:#555}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td textarea{height:7.5em}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td select{width:100%}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.short{width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.checkbox{width:auto;min-width:inherit;vertical-align:middle;display:inline;float:none}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.date-picker-field{width:50%;min-width:inherit;float:none;display:inline}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.hour,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.minute{width:2em;min-width:inherit;float:none;display:inline}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td.attribute_name{width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .minus,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .plus{margin-top:6px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .fl{float:left}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .fr{float:right}#download-monitor-file .dlm-metaboxes-wrapper .plus:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f132";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .minus:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_upload_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f317";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_media_library:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f104";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_browse_for_file{float:right}#download-monitor-file .dlm-metaboxes-wrapper .dlm_browse_for_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f322";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_browse_for_file .dlm_browse_for_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f322";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_external_source:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f103";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-information .dlm_information_panel div p{overflow:hidden;width:100%;font-weight:700;box-sizing:border-box;line-height:28px;margin-bottom:5px}#download-monitor-information .dlm_information_panel input{margin:0;border-top-right-radius:0;border-bottom-right-radius:0;flex-grow:1;width:calc(100% - 45px)}#download-monitor-product-information .dlm_information_panel div p{overflow:hidden;width:100%;font-weight:700;box-sizing:border-box;line-height:28px;margin-bottom:5px}#download-monitor-product-information .dlm_information_panel input{margin:0;border-top-right-radius:0;border-bottom-right-radius:0;flex-grow:1;width:calc(100% - 45px)}#download-monitor-options .inside{padding:0;margin:0}#download-monitor-options .form-field-checkbox label{display:inline;padding:0 0 4px}#download-monitor-options .form-field-checkbox input{display:inline-block;width:auto;vertical-align:middle}#download-monitor-options .form-field-checkbox .dlm-description{padding:4px 0 0 0;display:block}#download-monitor-options .access_permissions{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-options .access_permissions h4{margin-bottom:.5em;margin:0 0 .5em}#download-monitor-options .access_permissions ul{background:#fff;border:1px solid #dfdfdf;height:110px;overflow:auto;padding:.5em .9em;margin:0}#download-monitor-options p{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-options p.not-active{opacity:.7}#download-monitor-options .options_upsell_link{color:unset;text-decoration:none}#download-monitor-options .dlm-upsell-badge{font-size:10px;background:#f4daa4;padding:2px 5px;display:inline-block;margin-left:5px;border-radius:10px}#download-monitor-options .dlm-upsell-badge{font-size:10px;background:#f4daa4;padding:2px 5px;display:inline-block;margin-left:5px;border-radius:10px}#insert-download{padding:20px 20px}#insert-download #drag-drop-area,#insert-download #insert-shortcode{margin:1em 0}#insert-download .error,#insert-download .updated{margin-left:0;margin-right:0}#insert-download h2{margin-top:0}#insert-download label{margin:0 0 .25em 0;display:block;font-size:1.1em}#insert-download span.description{display:block}#insert-download input.input{margin:0 0 .25em 0;display:block;width:100%;font-size:1.1em}#insert-download .add_link{float:right}#insert-download ul.page-numbers{overflow:hidden;zoom:1;margin:0 auto;padding:0;text-align:center}#insert-download ul.page-numbers li{display:inline-block;margin:0;list-style:none outside;line-height:1em}#insert-download ul.page-numbers li a,#insert-download ul.page-numbers li span{text-decoration:none;border:1px solid #ddd;-webkit-border-radius:4px;border-radius:4px;padding:8px;display:block}#insert-download ul.page-numbers li span{border-color:#eee}#insert-download legend{font-weight:700;display:block;margin:0 0 1em}#insert-download fieldset label{display:block;margin:0 0 .5em}.dlm-code-nginx-rules{display:block}.settings_panel .form-table td{padding-left:0}.settings_panel .dlm-lazy-select-loader{display:inline-block;vertical-align:middle;padding:0 0 0 3px}.settings_panel .dlm-lazy-select-loader img{display:inline-block;height:25px;width:25px;margin-top:1px}.dlm_download_page_download-monitor-reports{position:relative}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports{margin:40px;position:relative}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-spinner{position:absolute;top:0;left:0;width:100%;height:100%;background:#fff;z-index:9999;color:#000;text-align:center}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-spinner span{display:inline-block;width:80px;height:80px}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-spinner span::after{content:" ";display:block;width:64px;height:64px;margin:8px;border-radius:50%;border:6px solid #000;border-color:#000 transparent #000 transparent;animation:dlmRotate 1.2s linear infinite}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .reports-block{background-color:#fff;margin-top:25px;border:1px solid #e0e0e0;box-sizing:border-box}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .half-reports-block{width:calc(50% - 45px)}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-loading-data{display:flex;flex-flow:column;align-items:center;justify-content:center;align-content:center;position:absolute;top:0;text-align:center;width:100%;height:100%;background:#fff;max-width:100%;margin:0 auto;font-size:36px;z-index:30}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header{display:flex;justify-content:space-between;background-color:#fff;border:1px solid #ddd}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-heading{font-weight:700}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-page-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;align-content:center;display:flex}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-insights-navigation .dlm-insights-tab-navigation{display:flex;flex-wrap:wrap;justify-content:flex-start;border-bottom:1px solid #e0e0e0;overflow:hidden;margin:0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-insights-navigation .dlm-insights-tab-navigation .dlm-insights-tab-navigation__element{width:33%;min-width:200px;height:100%;padding:24px;cursor:pointer;margin-bottom:0;background-color:#f8f9fa;border-top:4px solid;border-top-color:#f1f1f1;border-left:1px solid #e0e0e0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-insights-navigation .dlm-insights-tab-navigation .dlm-insights-tab-navigation__element:last-of-type{border-right:1px solid #e0e0e0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-insights-navigation .dlm-insights-tab-navigation .dlm-insights-tab-navigation__element.active{background-color:#fff;border-top-color:#3858e9}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-insights-navigation .dlm-insights-tab-navigation .dlm-insights-tab-navigation__element .dlm-insights-tab-navigation__label{display:block;width:100%;font-size:16px;font-weight:700}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-insights-navigation .dlm-insights-tab-navigation .dlm-insights-tab-navigation__element .dlm-insights-tab-navigation__description{display:block;width:100%;font-size:12px;font-style:italic;color:#646161}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;align-content:center;display:flex}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-per-page{margin-left:10px;margin-right:15px}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions:hover{border-color:#4338ca}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions:focus{border-color:#4338ca;box-shadow:0 0 3px #4338ca}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-period,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions a.dlm-reports-header-chart-switcher{margin:0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector{display:flex;align-items:center;min-height:32px;position:relative;font-size:14px;padding:0 .5em 0 5px;user-select:none;cursor:pointer;margin:0 15px;transition:.8s ease-in;opacity:1;min-width:230px}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector.disabled{pointer-events:none;opacity:0;display:none}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector>label{font-size:12px;font-style:italic;top:-20px;display:block;width:100%;position:absolute}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm-reports-header-period{display:flex;align-content:center;align-items:center;border:1px solid #ccc;border-left:0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm-reports-header-period a,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm-reports-header-period a:hover{height:100%;border:0;background:#fff;box-shadow:none}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm-reports-header-period a.active,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm-reports-header-period a:hover.active{background:#ccc}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector #dlm_date_range_picker .date-picker-wrapper{background:#fff;border:0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm-arrow:before{font-family:dashicons!important;content:"\f140";font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none;font-size:1.6em;vertical-align:middle}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay{display:flex;width:auto;background:#fff;position:absolute;top:30px;right:0;z-index:10;overflow:hidden;border-radius:5px;box-shadow:0 0 3px rgba(0,0,0,.6)}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date{font-size:70%;margin-right:5px;float:left;z-index:11;padding:15px}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline{border:0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline .ui-state-highlight{background:#e6e6e6 url(../images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;color:#555;border:1px solid #d3d3d3}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline .ui-state-active{border:1px solid #aaa;background:#fff url(../images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline td,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline th{padding:0;margin:0;line-height:2em}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline td a,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline th a{text-align:center!important}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_actions{width:70px;padding-left:10px;text-align:center;display:flex}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .footer{position:absolute;left:0;top:0;height:100%;padding-top:0;padding-bottom:0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .footer .shortcuts{border-right:1px solid rgba(0,0,0,.6);margin-top:0;margin-bottom:0;display:flex;flex-flow:column;justify-content:center;height:100%}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .footer .shortcuts a{text-align:left;padding:5px 40px 5px 10px;min-width:100px;color:#000;text-decoration:none}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .footer .shortcuts a:hover{color:#4338ca;background:rgba(204,204,204,.3)}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-chart-icon{display:block;padding-right:15px;color:#23282d}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports #dlm-toggle-settings{cursor:pointer;position:relative}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports #dlm-toggle-settings:before{color:#0081a7}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports #dlm-toggle-settings .dlm-toggle-settings__settings{width:300px;position:absolute;top:0;left:-335px;padding:15px;background:#fff;z-index:3;text-align:left;display:none}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports #dlm-toggle-settings .dlm-toggle-settings__settings.display{display:block}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports #dlm-toggle-settings .dlm-toggle-settings__settings>div{margin:15px 0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-tab-navigation__content{display:none;width:100%;flex-direction:row;justify-content:space-between;flex-wrap:wrap;position:relative}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-tab-navigation__content.active{display:flex}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm_reports_loader{position:absolute;width:32px;height:32px;top:50%;left:50%;margin:-16px 0 0 -16px}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .downloads-block-navigation{text-align:center;padding:7px 0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .downloads-block-navigation>*{vertical-align:middle;display:inline-block}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .downloads-block-navigation>span{color:grey}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .downloads-block-navigation .dlm-reports-total-pages{margin-right:15px}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .downloads-block-navigation button{border:0;color:#000;font-size:1rem;cursor:pointer;margin:0;box-shadow:transparent 0 0 0 0,transparent 0 0 0 0,rgba(0,0,0,.1) 0 1px 3px 0,rgba(0,0,0,.06) 0 1px 2px 0;background-color:#fff;width:24px;vertical-align:middle}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .downloads-block-navigation button[disabled]{opacity:.5;cursor:default}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block{position:relative;box-sizing:border-box;width:100%;overflow:hidden}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block .wpchill-tooltip i{color:inherit;opacity:.6}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block.dlm-reports-block-half{width:49%;margin-right:1%}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block.dlm-reports-block-half-right{width:49%;margin-left:1%}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block .dlm-reports-placeholder-no-data{display:inline-block;width:100%;font-size:1.5em;color:#b4b9be;font-style:italic;text-align:center}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul{width:100%}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li{position:relative}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li:not(:first-of-type){border-left:1px solid #e0e0e0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li:last-of-type{border-right:1px solid #e0e0e0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li label,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li span{display:block;width:100%}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li span{font-size:18px;line-height:28px;font-weight:700}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li:first-child label,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li:first-child span{border:none}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports-wrapper{width:100%}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports-block-summary ul{display:flex;flex-direction:row;justify-content:initial}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports-block-summary ul li{width:12.5%;padding:24px;margin:0;font-weight:600}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports-block-summary label{font-size:14px;line-height:20px;margin-bottom:16px;color:#757575;font-weight:400}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper{max-width:100%;background-color:#fff;padding:15px 24px;position:relative;border:1px solid #e0e0e0}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-reports-block-chart{width:100%;height:300px;margin-top:20px;background:#fff;overflow:hidden}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-reports-block-chart .chart-container h6{display:none}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-canvas-tooltip{border-radius:10px;color:#fff;background-color:#1f2937;opacity:1;pointer-events:none;position:absolute;transform:translate(-50%,0);transition:all .1s ease;padding:10px 15px;text-align:left;z-index:99}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-canvas-tooltip .dlm-reports-tooltip__downloads{font-size:18px;margin:0 auto;font-weight:700;position:relative;padding-left:15px}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-canvas-tooltip .dlm-reports-tooltip__downloads .dlm-reports-tooltip__downloads_pointer{width:5px;height:5px;display:inline-block;position:absolute;top:50%;transform:translateY(-50%);left:0}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-canvas-tooltip .dlm-reports-tooltip__info{font-size:12px;margin:0 auto}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-canvas-tooltip .dlm-reports-tooltip__date{font-size:13px;margin:0 auto;font-weight:600}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-reports-tooltip__line{height:calc(100% - 110px);width:0;background:0 0;z-index:1;position:absolute;top:65px!important;border:1px dashed #000}.dlm_download_page_download-monitor-reports #wpcontent #total_downloads_table_wrapper h3,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper h3{margin-top:0}.dlm_download_page_download-monitor-reports #wpcontent #total_downloads_table_wrapper.empty,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper.empty{display:none}.dlm_download_page_download-monitor-reports #wpcontent #total_downloads_table_wrapper #users_download_log,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper #users_download_log{margin-top:25px}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper{width:100%;margin-top:35px}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper #users_download_log{padding:0!important}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header{background:#f9fafb}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line{font-weight:700;display:table;width:100%;margin-bottom:17px;padding:1rem 10px}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header:not(:last-child),.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line:not(:last-child){border-bottom:1px solid #dedede}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header .dlm-reports-top-downloads__download_status,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line .dlm-reports-top-downloads__download_status{border-radius:10px;padding:10px;text-transform:capitalize}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header .dlm-reports-top-downloads__download_status.completed,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line .dlm-reports-top-downloads__download_status.completed{background:#adff2f60}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header .dlm-reports-top-downloads__download_status.redirected,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line .dlm-reports-top-downloads__download_status.redirected{background:#fffF0060}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header .dlm-reports-top-downloads__download_status.failed,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line .dlm-reports-top-downloads__download_status.failed{background:#ff000060}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header>div,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line>div{width:calc(15% - 3px);display:inline-block;text-align:left!important;flex-grow:unset!important}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header>div:last-child,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line>div:last-child{width:calc(10% - 2px);text-align:right!important}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header>div .dlm-user-reports .wpchill-tooltip,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line>div .dlm-user-reports .wpchill-tooltip{font-size:12px}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header>div .dlm-user-reports .wpchill-tooltip .wpchill-tooltip-content,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line>div .dlm-user-reports .wpchill-tooltip .wpchill-tooltip-content{font-size:16px;line-height:18px;text-align:center}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header>div .dlm-user-reports .wpchill-tooltip .wpchill-tooltip-content span,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line>div .dlm-user-reports .wpchill-tooltip .wpchill-tooltip-content span{font-size:16px;line-height:18px;text-align:center;display:block}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header a,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line a{text-decoration:none}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .user-downloads-filters .user-downloads-filters__filter,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .user-downloads-filters .user-downloads-filters__heading{display:inline-block}.dlm_download_page_download-monitor-reports div[data-id=user_reports] #user_downloads_summary ul .wpchill-tooltip,.dlm_download_page_download-monitor-reports div[data-id=user_reports] #users_downloads_table_wrapper ul .wpchill-tooltip{font-size:14px}.dlm_download_page_download-monitor-reports div[data-id=user_reports] #user_downloads_summary ul .wpchill-tooltip .wpchill-tooltip-content,.dlm_download_page_download-monitor-reports div[data-id=user_reports] #users_downloads_table_wrapper ul .wpchill-tooltip .wpchill-tooltip-content{font-size:16px;line-height:18px;text-align:center}.dlm_download_page_download-monitor-reports div[data-id=user_reports] #user_downloads_summary ul .wpchill-tooltip .wpchill-tooltip-content span,.dlm_download_page_download-monitor-reports div[data-id=user_reports] #users_downloads_table_wrapper ul .wpchill-tooltip .wpchill-tooltip-content span{font-size:16px;line-height:18px;text-align:center;display:block}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__table{width:100%;border-collapse:collapse}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__filters{background-color:#f8f9fa;border-bottom:1px solid #e2e4e7}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__filters>th{padding:16px;font-weight:700;text-align:left}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__header{font-weight:700;width:100%;margin-bottom:17px}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__header .dlm-reports-header-left,.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__header .dlm-reports-header-right{margin-bottom:15px;font-size:12px;color:#6b7280}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__header .dlm-reports-header-left{padding-left:36px}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__header .dlm-reports-header-right{text-align:right}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__line{background-color:#fff;border-bottom:1px solid #e2e4e7}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__line:hover{background-color:#e0e0e0;cursor:pointer}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__line>td{padding:16px;font-size:.8125rem;text-align:left;color:#192a3d;font-weight:500}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__line .dlm-reports-table__overflower{position:absolute;height:100%;background:#f5f5fc;z-index:-1}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__line a{color:#0081a7;padding:8px;display:block;font-weight:500}.dlm_download_page_download-monitor-reports input.dlm-reports-current-page{display:inline-block;width:75px;vertical-align:middle}.post-type-dlm_product table.wp-list-table .column-title{width:65%!important}.dlm_mb_shop_product_information .dlm_shop_field_row{width:100%;overflow:hidden}.dlm_mb_shop_product_information .dlm_shop_field_row label.dlm_shop_field_label{display:inline-block;width:20%;height:100%;line-height:2.2em;float:left}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input{display:inline-block;width:50%;float:left}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .dlm_shop_input{width:100%;padding:5px 7px}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-selection--multiple{border:1px solid #ddd}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-search,.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-selection__choice{margin-bottom:0}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-search__field{padding-top:3px}.dlm-order-overview #dlm_empty_trash{margin-left:3px}.dlm-order-overview .wp-list-table td .column-id{width:25%}.dlm-order-details{max-width:1250px;margin-left:auto;margin-right:auto;padding-right:20px}.dlm-order-details h1{padding-bottom:25px}.dlm-order-details .dlm-order-details-main,.dlm-order-details .dlm-order-details-side{width:100%;float:left}.dlm-order-details .dlm-order-details-block{padding:0;margin-bottom:20px;line-height:1;border:1px solid #e5e5e5;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.dlm-order-details .dlm-order-details-block h2.dlm-order-details-block-title{font-size:14px;padding:8px 12px;margin:0;line-height:1.4;border-bottom:1px solid #eee}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside{margin:6px 0 0 0;padding:6px 12px 12px;line-height:1.4em;font-size:13px}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside label{display:block;font-weight:700;padding-bottom:6px}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside p{padding:0;margin:0}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside ul,.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside ul li{list-style:none;padding:0;margin:0}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside ul li{padding:6px 0}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside .dlm-order-details-current-state{width:70%;height:30px}.dlm-order-details .dlm-order-details-block.dlm-order-details-customer .dlm-order-details-customer-image{float:right}.dlm-order-details .dlm-order-details-block.dlm-order-details-customer ul li{margin-bottom:4px;padding:0}.dlm-order-details .dlm-order-details-block.dlm-order-details-customer ul li:first-child{font-weight:700}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items{overflow:hidden}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview{width:25%;float:right}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview td,.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview th{padding-top:1.5em;padding-bottom:1.5em;text-align:right}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview th{width:50%;font-weight:400}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview td{padding-right:1em;font-weight:700}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table{width:100%}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th{text-align:center}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td:first-child,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th:first-child{text-align:left;padding-left:.5em}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th{padding-top:.5em;padding-bottom:.5em;border-bottom:2px solid #c3c1bc}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td{padding-top:1.5em;padding-bottom:1.5em;border-bottom:1px solid #c3c1bc}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td.dlm-order-details-order-items-item-total,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th.dlm-order-details-order-items-item-total{text-align:right;padding-right:1em}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td.dlm-order-transaction-processor-id,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th.dlm-order-transaction-processor-id{display:none}.dlm-order-details .dlm-order-details-block .dlm-order-details-update-successful{font-size:2em;padding:.2em .3em;color:#46b450}@media (min-width:768px){.dlm-order-details .dlm-order-details-main{width:62%;float:left}.dlm-order-details .dlm-order-details-side{width:35%;float:right}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td.dlm-order-transaction-processor-id,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th.dlm-order-transaction-processor-id{display:table-cell}}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-one-col{margin:0 auto;max-width:800px}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-cta{margin-top:40px;text-align:center}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col{max-width:680px;margin:40px auto 0;overflow:hidden;display:flex;justify-content:space-between;flex-wrap:wrap}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col .dlm-onboarding-col{padding-top:2.5em;flex:1;align-self:flex-start;min-width:100%;max-width:100%}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col .dlm-onboarding-col img{width:100%}.dlm-onboarding .dlm-onboarding-section h2{margin:60px 0 .6em;font-size:2.7em;line-height:1.3;font-weight:300;text-align:center}.dlm-onboarding .dlm-onboarding-section p{max-width:55em;margin:.6em auto 0 auto}.dlm-onboarding .dlm-onboarding-section a.button-hero{height:46px;font-size:14px;line-height:44px;padding:0 36px;font-weight:700;text-align:center}.dlm-onboarding .dlm-onboarding-pages{max-width:55em;margin:0 auto;padding:2em 0 0}.dlm-onboarding .dlm-onboarding-pages a.button-hero{width:170px}.dlm-onboarding .dlm-onboarding-pages a.button-hero.dlm-page-exists{background:#46b450;border-color:#46b450 #4a8442 #467a3f;box-shadow:0 2px 0 #467a3f;text-shadow:0 -1px 1px #4a8442,1px 0 1px #4a8442,0 1px 1px #4a8442,-1px 0 1px #4a8442}.dlm-onboarding .dlm-onboarding-pages a.button-hero.dlm-page-exists:active{box-shadow:0 2px 0 #467a3f}.dlm-onboarding .dlm-onboarding-pages td,.dlm-onboarding .dlm-onboarding-pages th{padding:1em 0;border-bottom:1px solid #ccc}.dlm-onboarding .dlm-onboarding-pages th{width:13%;min-width:6em;text-align:left}.dlm-onboarding .dlm-onboarding-pages td{padding-right:.5em;padding-left:.5em}.dlm-onboarding .dlm-onboarding-pages td.dlm-onboarding-pages-page-title{font-weight:700}@media (min-width:768px){.dlm-onboarding .dlm-onboarding-section .dlm-onboarding-pages{width:55em}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col .dlm-onboarding-col{padding-top:0;min-width:31%;max-width:31%}}.dlm_extensions_wrap a.dlm-reload-button{float:right;position:relative;top:-40px}.dlm_extensions_wrap #available-extensions{clear:both}.dlm_extensions_wrap .dlm_extensions{padding:15px 0;overflow:hidden}.dlm_extensions_wrap .dlm_extensions .dlm_extension{background-color:#fff;width:calc(20% - 15px);margin:0 15px 15px 0;display:inline-block;vertical-align:top}.dlm_extensions_wrap .dlm_extensions .dlm_extension p{margin:0}.dlm_extensions_wrap .dlm_extensions .dlm_extension a{color:#444;text-decoration:none}.dlm_extensions_wrap .dlm_extensions .dlm_extension .dlm_extension_img_wrapper{width:100%;background:#419ccb;text-align:center}.dlm_extensions_wrap .dlm_extensions .dlm_extension .dlm_extension_img_wrapper img{max-width:100%;margin:0 auto}.dlm_extensions_wrap .dlm_extensions .dlm_extension h3{min-height:40px;padding:0 20px}.dlm_extensions_wrap .dlm_extensions .dlm_extension div.extension-desc{min-height:120px;padding:0 20px}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer{padding:15px 15px 15px 0;text-align:right;background-color:#fafafa;border-top:1px solid #dcdcde}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .loop_price{font-weight:700}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .loop_price.sale{color:green}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .loop_price.sale strike{color:#444}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .button .dashicons{vertical-align:middle;font-size:16px}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license{padding:0 20px 20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license div.dlm_license_error{padding:.5em;margin-bottom:15px;background:#ffffe0}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license div.dlm_license_error a{color:#00f;text-decoration:underline}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license p.license-status{padding:5px 0;margin:5px 0;background:red;font-weight:700;font-size:1.2em;color:#fff;text-align:center}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license p.license-status.active{background:green}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license input{width:100%;margin:7px 0;padding:7px}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license a.button-primary{width:100%;margin:5px auto 0;color:#fff;text-align:center}#ui-datepicker-div{display:none}.wpchill-upsell{background:#fff;padding:15px;margin-top:30px;position:relative}.wpchill-upsell .wpchill-upsell-features{text-align:left;display:flex;flex-wrap:wrap;padding:20px 0}.wpchill-upsell .wpchill-upsell-features li{width:33%}.wpchill-upsell a:first-child{margin-right:10px}.wpchill-upsells-wrapper{width:100%}.wpchill-upsells-wrapper .wpchill-upsell{border:1px solid #cecece;border-radius:5px;text-align:center}.wpchill-upsells-wrapper .wpchill-upsell img{max-width:100px;max-height:100px;height:auto;width:auto}.wrap.dlm-admin-settings .form-table{width:65%;float:left}.wrap.dlm-admin-settings .form-table+.wpchill-upsells-wrapper{width:30%;float:right}.wrap.dlm-admin-settings .form-table .dlm_htaccess_notice{margin-bottom:5px}.wrap.dlm-admin-settings .dlm-upsell-badge{font-size:10px;background:#f4daa4;padding:2px 5px;display:inline-block;margin-left:10px;border-radius:10px}.wrap.dlm-admin-settings #setting-dlm_downloads_path+p strong{color:red}.wrap.dlm-admin-settings #setting-dlm_downloads_path .dlm-install-plugin-actions{display:inline-block;vertical-align:middle;margin:5px auto;margin-left:15px}#total_downloads_browser_table a.nav-tab{text-transform:capitalize}#dlm-amazon-s3-upsell .inside,#dlm-buttons-upsell .inside,#dlm-download-page-upsell .inside,#dlm-google-drive-upsell .inside{display:flex;flex-wrap:wrap;background:#f1f1f1}#dlm-amazon-s3-upsell .inside .wpchill-upsell,#dlm-buttons-upsell .inside .wpchill-upsell,#dlm-download-page-upsell .inside .wpchill-upsell,#dlm-google-drive-upsell .inside .wpchill-upsell{background:#fff;text-align:center;width:100%;margin-top:0}#dlm-amazon-s3-upsell .inside,#dlm-buttons-upsell .inside,#dlm-download-page-upsell .inside,#dlm-google-drive-upsell .inside{margin:0;padding:0}.upsells-columns .dlm-available-with-pro,.wpchill-upsells-wrapper .dlm-available-with-pro{width:auto;border-radius:0 5px 0 5px;background:#2271b1;color:#fff;position:absolute;top:-1px;right:-1px;display:flex;align-content:center;border-top:0;border-left:0;padding:5px 8px 2px 5px}.upsells-columns .dlm-available-with-pro>*,.wpchill-upsells-wrapper .dlm-available-with-pro>*{font-size:12px}.upsells-columns .dlm-available-with-pro>.dashicons,.wpchill-upsells-wrapper .dlm-available-with-pro>.dashicons{line-height:15px}.upsells-columns{display:flex;flex-wrap:wrap;align-items:center;align-content:center;padding-top:5px;margin-bottom:10px}.upsells-columns .upsells-columns-2{width:50%;text-align:center;display:flex;align-items:center;align-content:center}.upsells-columns .upsells-column{width:calc(100% - 30px);text-align:center;display:flex;align-items:center;align-content:center;margin:5px auto 0 auto;border-radius:5px;border:1px solid #cecece;overflow:hidden}.upsells-columns .upsells-column .dashicons-amazon{font-size:22px}.upsells-columns .upsells-column .dashicons-google{font-size:18px;position:relative;left:1px;top:1px}.upsells-columns .upsells-column .dashicons-lock:before{font-size:14px}.upsells-columns .upsells-column>*{display:inline-block;align-content:center;vertical-align:middle;margin:0 10px;padding:7px 0}.upsells-columns .upsells-column>.wpchill-upsell{position:relative;float:none;flex-grow:1;display:flex;align-items:center;margin:0}.upsells-columns .upsells-column>.wpchill-upsell .wpchill-upsell-description{margin:0;text-align:left;max-width:535px;font-size:12px}.upsells-columns .upsells-column h3{line-height:1.3em;font-size:1em;margin-left:0}.upsells-columns .upsells-column:last-child{border-top:1px solid #c3c4c7;border-bottom:1px solid #c3c4c7}.upsells-columns .wpchill-upsell{margin-top:0}.disabled-link{color:currentColor;cursor:not-allowed;opacity:.5;text-decoration:none}.text-right{text-align:right}.dlm_download_page_dlm-lite-vs-pro,.dlm_download_page_dlm-lite-vs-pro p{font-size:14px;margin:0}.dlm_download_page_dlm-lite-vs-pro>.wpchill-plans-table.wpchill-highlight>.wpchill-pricing-package{background:#fefff0;box-shadow:0 0 15px #d0dbdb}.dlm_download_page_dlm-lite-vs-pro .wp-badge{display:inline-block;vertical-align:middle;position:relative;margin-right:2.5%}.dlm_download_page_dlm-lite-vs-pro h3{display:block;position:relative;font-size:16px;margin:0}.dlm_download_page_dlm-lite-vs-pro .wpchill-plans-table{display:flex}.dlm_download_page_dlm-lite-vs-pro .wpchill-plans-table.table-header{margin-top:50px;border-top:0}.dlm_download_page_dlm-lite-vs-pro .wpchill-plans-table.table-header .wpchill-pricing-package{border:0}.dlm_download_page_dlm-lite-vs-pro .wpchill-plans-table.table-header .wpchill-pricing-package.wpchill-title.wpchill-highlight::before,.dlm_download_page_dlm-lite-vs-pro .wpchill-plans-table.table-header .wpchill-pricing-package:not(.wpchill-modula-lite):last-child:before{content:'';width:auto;display:inline-block;opacity:1;position:absolute;top:-1px;background:#41495b;text-align:center;left:0;right:0;color:#fff;font-size:15px;text-transform:uppercase;padding:10px 5px;transform:translateY(-100%)}.dlm_download_page_dlm-lite-vs-pro.table-footer .wpchill-pricing-package:last-child{border:0}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package{text-align:center;line-height:1.5;padding:10px 15px;display:flex;align-content:center;align-items:center;justify-content:center;background:#fff;border-top:1px solid #ccc;width:32%}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package:not(:first-child){max-width:300px}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title{font-weight:400;color:#666;font-size:1.25rem;height:auto;-ms-flex-direction:column;flex-direction:column;padding-top:30px;padding-bottom:30px;justify-content:space-between;position:relative}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title .wpchill-name{margin:0;font-size:36px}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title.wpchill-modula-lite{justify-content:center}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title p.description{font-style:italic;font-size:13px;margin-bottom:40px}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title .wpchill-price p:last-child{font-size:30px;margin:0 0 40px 0}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title .wpchill-price p.old-price{margin:0;position:relative}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title .wpchill-price p.old-price:after{content:"";height:2px;width:60px;background:red;display:block;position:absolute;left:50%;top:52%;transform:translate(-50%,-50%)}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title .wpchill-price sup{top:2px;position:relative;font-size:15px}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-empty{background:0 0;border-color:transparent}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.feature-name{justify-content:space-between;font-weight:400;text-align:left;font-size:13px;display:block;background:0 0}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package .dashicons-saved{color:green}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package .dashicons{width:30px;height:30px;font-size:30px}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package .dashicons-no-alt{color:#ff3439}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package:last-child{background:#fefff0}.dlm_download_page_dlm-lite-vs-pro .button .dashicons{font-size:16px;vertical-align:middle;line-height:26px}.wpchill-tooltip{position:relative;display:inline-block;margin-right:10px}.wpchill-tooltip>i{cursor:pointer;color:rgba(0,0,0,.6);margin-left:5px;font-style:normal}.wpchill-tooltip .wpchill-tooltip-content{display:none;position:absolute;top:50%;right:-10px;transform:translate(100%,-50%);width:300px;background:#000;color:#fff;padding:10px;box-sizing:border-box;z-index:99}.wpchill-tooltip .wpchill-tooltip-content:before{content:'';width:0;height:0;border-style:solid;border-width:8px 8px 8px 0;border-color:transparent #000 transparent transparent;display:block;position:absolute;top:50%;left:-8px;transform:translateY(-50%)}.wpchill-tooltip:hover .wpchill-tooltip-content{display:block}.dlm_download_page_dlm-extensions .theme.dlm_extension{background-color:#fff}.wpchill-tooltip{position:relative;display:inline-block;float:left;margin-right:10px}.wpchill-tooltip>span{cursor:pointer;color:#0073aa;text-decoration:underline;margin-left:5px}.wpchill-tooltip .wpchill-tooltip-content{display:none;position:absolute;top:50%;right:-10px;transform:translate(100%,-50%);width:300px;background:#000;color:#fff;padding:10px;box-sizing:border-box;z-index:99}.wpchill-tooltip:hover .wpchill-tooltip-content{display:block}.wpchill-tooltip .wpchill-tooltip-content:before{content:'';width:0;height:0;border-style:solid;border-width:8px 8px 8px 0;border-color:transparent #000 transparent transparent;display:block;position:absolute;top:50%;left:-8px;transform:translateY(-50%)}.wpchill-tooltip-button{position:relative}.wpchill-tooltip-button .wpchill-tooltip-content{display:none;position:absolute;top:50%;right:25px;transform:translate(50%,-135%);width:auto;background:rgba(0,0,0,.8);color:#fff;padding:10px 15px;box-sizing:border-box;font-size:14px;z-index:99}.wpchill-tooltip-button:hover .wpchill-tooltip-content{display:block}.wpchill-tooltip-button .wpchill-tooltip-content:before{content:'';width:0;height:0;border-style:solid;border-width:8px 8px 8px 0;border-color:transparent #000 transparent transparent;display:block;position:absolute;bottom:-12px;left:50%;transform:rotate(-90deg)}.dlm-file-link{display:block;margin-top:3px}.dlm-listing-no-file code{color:#b32d2e}.wpchill-toggle{position:relative;user-select:none;display:inline-block;vertical-align:middle}.wpchill-toggle .wpchill-toggle__items{box-sizing:border-box;display:inline-block;position:relative}.wpchill-toggle .wpchill-toggle__items>*{box-sizing:inherit}.wpchill-toggle .wpchill-toggle__items .wpchill-toggle__track{background-color:#fff;border:2px solid #6c7781;border-radius:9px;display:inline-block;height:18px;width:36px;vertical-align:top;transition:background .2s ease}.wpchill-toggle .wpchill-toggle__items .wpchill-toggle__thumb{background-color:#6c7781;border:5px solid #6c7781;border-radius:50%;display:block;height:10px;width:10px;position:absolute;left:4px;top:4px;transition:transform .2s ease;min-width:auto;min-height:auto;float:none;padding:0}.wpchill-toggle .wpchill-toggle__items .wpchill-toggle__off{position:absolute;right:6px;top:6px;color:#6c7781;fill:currentColor}.wpchill-toggle .wpchill-toggle__items .wpchill-toggle__on{position:absolute;top:6px;left:8px;border:1px solid #fff;outline:1px solid transparent;outline-offset:-1px;display:none}.wpchill-toggle .wpchill-toggle__input[type=checkbox]{border-radius:2px;border:2px solid #6c7781;margin-right:12px;transition:none;height:100%;left:0;top:0;margin:0;padding:0;opacity:0;position:absolute;width:100%;z-index:1}.wpchill-toggle .wpchill-toggle__input[type=checkbox]:checked+.wpchill-toggle__items .wpchill-toggle__track{background-color:#0081a7;border:9px solid transparent}.wpchill-toggle .wpchill-toggle__input[type=checkbox]:checked+.wpchill-toggle__items .wpchill-toggle__thumb{background-color:#fff;border-width:0;transform:translateX(18px)}.wpchill-toggle .wpchill-toggle__input[type=checkbox]:checked+.wpchill-toggle__items .wpchill-toggle__off{display:none}.wpchill-toggle .wpchill-toggle__input[type=checkbox]:checked+.wpchill-toggle__items .wpchill-toggle__on{display:inline-block}#total_downloads_table_wrapper2{width:100%;background-color:#fff;border:1px solid #e0e0e0;margin-top:30px;position:relative}#total_downloads_table_wrapper2 .total_downloads_table_header{padding:0 16px;height:70px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}#total_downloads_table_wrapper2 .total_downloads_table_header .total_downloads_table_exportcsv .dashicons{margin-right:5px}#total_downloads_table_wrapper2 .total_downloads_table_header h3{margin:0;line-height:1.2;color:#23282d;font-size:16px;font-weight:600;text-transform:capitalize}@keyframes dlmRotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.dlm-uploader-editor{position:absolute;z-index:99998;background:rgba(140,143,148,.9);top:0;left:0;right:0;bottom:0;text-align:center;display:none}.dlm-uploader-editor.droppable{background:rgba(10,75,120,.9)}.dlm-uploader-editor .uploader-editor-content{position:absolute;top:10px;left:10px;right:10px;bottom:10px;border:1px dashed #fff}.dlm-uploader-editor .uploader-editor-content .uploader-editor-title{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:600;color:#fff;margin:0;padding:0 10px}.dlm-notice-logo{width:auto;max-height:35px;max-width:35px;display:inline-block}.dlm-available-with-pro__overlay{pointer-events:none;background:#fff!important;opacity:.5}.dlm-available-with-pro__overlay.select{margin-left:10px}.dlm-available-with-pro__label{pointer-events:none;background:#80808080;padding:1px 5px;border-radius:5px;display:inline-block;vertical-align:middle;font-size:10px;color:#fff}.dlm-copy-shortcode-input{border:0!important;width:0;padding:0!important;outline:0}
1
+ .post-type-dlm_download .dlm-page-header{border-bottom:1px solid #ccc;padding:15px 20px;display:flex;justify-content:space-between;background:#fff;width:calc(100% + 20px);box-sizing:border-box;margin-left:-20px}.post-type-dlm_download .dlm-page-header .dlm-header-links{margin-left:-20px}.post-type-dlm_download .dlm-page-header .dlm-header-links a span{vertical-align:middle;position:relative;top:-2px;padding-right:10px;font-size:16px}.post-type-dlm_download .dlm-page-header .dlm-header-logo img{max-height:35px}.post-type-dlm_download td.column-shortcode .hidden{display:none}.post-type-dlm_download .inline-edit-row .inline-edit-col-dlm .inline-edit-col-dlm-inner{margin-top:10px}.dlm-settings-sub-nav{margin:0 0 10px 0;width:100%;border-bottom:1px solid #ccc;box-shadow:0 1px 1px rgba(0,0,0,.04)}.dlm-settings-sub-nav li{margin-right:10px;margin-bottom:-2px}.dlm-settings-sub-nav a{padding:13px;display:block;outline:0;box-shadow:none}.dlm-settings-sub-nav .active-section{margin-bottom:-2px}.dlm-settings-sub-nav .active-section a{border-bottom:4px solid #000;padding-bottom:9px;margin-bottom:-2px;font-weight:600}.dlm-admin-settings #setting-dlm_decimal_separator,.dlm-admin-settings #setting-dlm_thousand_separator{width:50px}.dlm-admin-settings table td{padding:15px 0}.dlm-admin-settings h3{margin:2em 0 0}.dlm-admin-settings .form-table label.dlm-radio-label{display:block;margin-bottom:5px}.dlm-admin-settings .form-table label.dlm-enhanced-radio-label{position:relative;padding:10px 15px;display:inline-block;margin-bottom:15px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dlm-admin-settings .form-table label.dlm-enhanced-radio-label span{z-index:3;position:relative}.dlm-admin-settings .form-table label.dlm-enhanced-radio-label input[type=radio]{position:relative;z-index:2}.dlm-admin-settings .form-table label.dlm-enhanced-radio-label input[type=radio]+div.dlm-radio__selectable-area{position:absolute;width:100%;height:100%;border-radius:20px;display:block;top:0;left:0;opacity:1;border:1px solid grey}.dlm-admin-settings .form-table label.dlm-enhanced-radio-label input[type=radio]:checked+div.dlm-radio__selectable-area{border-color:green;background-color:rgba(0,128,0,.6)}.dlm-admin-settings .form-table label.dlm-enhanced-radio-label input[type=radio]:checked+div.dlm-radio__selectable-area+span{color:#fff}.dlm-admin-settings .dlm_settings{padding:5px 0}.dlm-admin-settings .dlm_settings>th{padding:15px 5px}.dlm-admin-settings .dlm_settings>td{padding:15px 5px 15px 0}.dlm-admin-settings .dlm_install_plugin_setting{background:#fff;padding:0 15px;border-bottom:1px solid #ccc;border-top:1px solid #ccc}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group,.dlm-admin-settings .dlm_group_setting td{margin:0 auto;padding:0!important}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group .dlm-groupped-settings__box,.dlm-admin-settings .dlm_group_setting td .dlm-groupped-settings__box{margin:5px 0 5px 0}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group .dlm-groupped-settings__box .postbox,.dlm-admin-settings .dlm_group_setting td .dlm-groupped-settings__box .postbox{padding:0;margin:0 auto}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group .dlm-groupped-settings__box .postbox .hndle,.dlm-admin-settings .dlm_group_setting td .dlm-groupped-settings__box .postbox .hndle{margin:0;padding:8px;font-weight:lighter}.dlm-admin-settings .dlm_group_setting .handle-actions button{box-shadow:none}.dlm-admin-settings .dlm_group_setting h2.hndle{cursor:pointer}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group__content{padding:15px}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group__content .dlm-accordeon-group__setting{padding:35px 0;display:flex;flex-wrap:wrap;flex-direction:row;justify-content:space-between}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group__content .dlm-accordeon-group__setting .dlm-accordeon-group__setting-title{font-size:16px;margin-bottom:15px;font-weight:700;width:20%}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group__content .dlm-accordeon-group__setting .dlm-accordeon-group__setting-content{width:80%}.dlm-admin-settings .dlm_group_setting .dlm-accordeon-group__content .dlm-accordeon-group__setting .description{font-style:italic}ul.download_monitor_file_browser{list-style:none outside;margin:0;border:1px solid #ddd;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background:#f9f9f9;padding:5px 5px;-moz-box-shadow:inset 0 0 0 1px #fff;-webkit-box-shadow:inset 0 0 0 1px #fff;box-shadow:inset 0 0 0 1px #fff}ul.download_monitor_file_browser li{padding:0;margin:0}ul.download_monitor_file_browser li a{color:#21759b;display:block;padding:4px 0 4px 4px;text-decoration:none}ul.download_monitor_file_browser li a:hover{background-color:#eaf2fa}ul.download_monitor_file_browser li a:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f123";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.folder:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f318";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-3g2:before,ul.download_monitor_file_browser li a.filetype-3gp:before,ul.download_monitor_file_browser li a.filetype-asf:before,ul.download_monitor_file_browser li a.filetype-asx:before,ul.download_monitor_file_browser li a.filetype-avi:before,ul.download_monitor_file_browser li a.filetype-mov:before,ul.download_monitor_file_browser li a.filetype-mp4:before,ul.download_monitor_file_browser li a.filetype-mpg:before,ul.download_monitor_file_browser li a.filetype-rm:before,ul.download_monitor_file_browser li a.filetype-srt:before,ul.download_monitor_file_browser li a.filetype-vob:before,ul.download_monitor_file_browser li a.filetype-wmv:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f126";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-aif:before,ul.download_monitor_file_browser li a.filetype-iff:before,ul.download_monitor_file_browser li a.filetype-m3u:before,ul.download_monitor_file_browser li a.filetype-m4a:before,ul.download_monitor_file_browser li a.filetype-mid:before,ul.download_monitor_file_browser li a.filetype-midi:before,ul.download_monitor_file_browser li a.filetype-mp3:before,ul.download_monitor_file_browser li a.filetype-mpa:before,ul.download_monitor_file_browser li a.filetype-ra:before,ul.download_monitor_file_browser li a.filetype-wav:before,ul.download_monitor_file_browser li a.filetype-wma:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f127";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li a.filetype-ai:before,ul.download_monitor_file_browser li a.filetype-bmp:before,ul.download_monitor_file_browser li a.filetype-dds:before,ul.download_monitor_file_browser li a.filetype-eps:before,ul.download_monitor_file_browser li a.filetype-gif:before,ul.download_monitor_file_browser li a.filetype-ico:before,ul.download_monitor_file_browser li a.filetype-jpeg:before,ul.download_monitor_file_browser li a.filetype-jpg:before,ul.download_monitor_file_browser li a.filetype-png:before,ul.download_monitor_file_browser li a.filetype-ps:before,ul.download_monitor_file_browser li a.filetype-psd:before,ul.download_monitor_file_browser li a.filetype-pspimage:before,ul.download_monitor_file_browser li a.filetype-svg:before,ul.download_monitor_file_browser li a.filetype-tga:before,ul.download_monitor_file_browser li a.filetype-thm:before,ul.download_monitor_file_browser li a.filetype-tif:before,ul.download_monitor_file_browser li a.filetype-yuv:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f128";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}ul.download_monitor_file_browser li.nofiles{color:#999;font-style:italic;padding:4px 0}ul.download_monitor_file_browser li ul{list-style:none outside;margin:0;padding:0 0 0 28px}ul.download_monitor_file_browser li ul.loading{background:url(../images/ajax-loader.gif) no-repeat 24px 0;height:32px}table.wp-list-table .column-thumb{width:44px;text-align:center;white-space:nowrap}table.wp-list-table .column-dlm_download_cat,table.wp-list-table .column-dlm_download_tag,table.wp-list-table .column-file{width:11%!important}table.wp-list-table .column-file,table.wp-list-table .column-title{width:17%!important}table.wp-list-table .column-download_id,table.wp-list-table .column-version{width:5em}table.wp-list-table th.column-download_count span:first-child,table.wp-list-table th.column-featured span:first-child,table.wp-list-table th.column-locked_download span:first-child,table.wp-list-table th.column-members_only span:first-child,table.wp-list-table th.column-redirect_only span:first-child,table.wp-list-table th.column-thumb span:first-child{float:none;display:inline-block;width:1em;height:1em;line-height:1em;padding:2px 0 0 0;overflow:hidden}table.wp-list-table th.column-download_count .sorting-indicator,table.wp-list-table th.column-featured .sorting-indicator,table.wp-list-table th.column-locked_download .sorting-indicator,table.wp-list-table th.column-members_only .sorting-indicator,table.wp-list-table th.column-redirect_only .sorting-indicator,table.wp-list-table th.column-thumb .sorting-indicator{float:right}table.wp-list-table th.column-thumb{width:52px;text-align:center}table.wp-list-table th.column-thumb span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f128";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-download_count{width:5em}table.wp-list-table th.column-download_count span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f346";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-locked_download,table.wp-list-table th.column-members_only{width:3.5em}table.wp-list-table th.column-locked_download span:first-child:before,table.wp-list-table th.column-members_only span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f160";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-redirect_only{width:3.5em}table.wp-list-table th.column-redirect_only span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f103";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table th.column-featured{width:3.5em}table.wp-list-table th.column-featured span:first-child:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f155";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table td.column-download_count,table.wp-list-table td.column-featured,table.wp-list-table td.column-locked_download,table.wp-list-table td.column-members_only,table.wp-list-table td.column-redirect_only{text-align:left;padding-left:11px}table.wp-list-table td.column-download_count span.na,table.wp-list-table td.column-featured span.na,table.wp-list-table td.column-locked_download span.na,table.wp-list-table td.column-members_only span.na,table.wp-list-table td.column-redirect_only span.na{color:#999;width:1em;height:1em;line-height:1em;display:inline-block;overflow:hidden;vertical-align:middle}table.wp-list-table td.column-download_count span.na:before,table.wp-list-table td.column-featured span.na:before,table.wp-list-table td.column-locked_download span.na:before,table.wp-list-table td.column-members_only span.na:before,table.wp-list-table td.column-redirect_only span.na:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table td.column-download_count span.yes,table.wp-list-table td.column-featured span.yes,table.wp-list-table td.column-locked_download span.yes,table.wp-list-table td.column-members_only span.yes,table.wp-list-table td.column-redirect_only span.yes{width:1em;height:1em;line-height:1em;display:inline-block;overflow:hidden;vertical-align:middle}table.wp-list-table td.column-download_count span.yes:before,table.wp-list-table td.column-featured span.yes:before,table.wp-list-table td.column-locked_download span.yes:before,table.wp-list-table td.column-members_only span.yes:before,table.wp-list-table td.column-redirect_only span.yes:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f147";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}table.wp-list-table .column-thumb img{padding:2px;margin:0;border:1px solid #dfdfdf;vertical-align:middle;width:32px;height:32px}#download-monitor-file .inside{padding:0;margin:0}#download-monitor-file .dlm-metaboxes-wrapper .close_all,#download-monitor-file .dlm-metaboxes-wrapper .expand_all{float:right;margin-left:1em;line-height:22px;text-decoration:none}#download-monitor-file .dlm-metaboxes-wrapper .expand_all:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f168";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .close_all:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper p.toolbar{margin:0!important;border-top:1px solid #fff;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-file .dlm-metaboxes-wrapper p.toolbar a.button{float:left;margin:0}#download-monitor-file .dlm-metaboxes-wrapper .fr,#download-monitor-file .dlm-metaboxes-wrapper button.add_attribute,#download-monitor-file .dlm-metaboxes-wrapper button.add_variable_attribute,#download-monitor-file .dlm-metaboxes-wrapper select.attribute_taxonomy{float:right;margin:0 0 0 6px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metaboxes{padding:0 12px 0}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metaboxes.dlm-versions-tab{display:flex;justify-content:space-between;flex-wrap:wrap;border-top:1px solid #dfdfdf}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox-sortable-placeholder{border-color:#bbb;background-color:#f5f5f5;margin:9px 0;border-width:1px;border-style:dashed}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files{padding:0;margin:15px}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file{background:#fff;border-radius:4px}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file .dlm-version-info{display:inline-block}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file .dlm-version-info>span{font-size:13px;font-weight:400;margin-right:20px}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file .dlm-version-info>span:first-child{border:1px solid #ccc;padding:2px 3px;border-radius:5px}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file .dlm-version-info>span .dashicons{margin-right:5px;color:#787C8250}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file .dlm-version-info .dlm-version-info__version{background:rgba(206,206,206,.5);padding:3px 5px}#download-monitor-file .dlm-metaboxes-wrapper .downloadable_files .downloadable_file .wpchill-tooltip{float:none}#download-monitor-file .dlm-metaboxes-wrapper .drag-drop #drag-drop-area{border:4px dashed #c3c4c7;height:140px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox-content{padding-top:5px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row{width:calc(100% - 30px);position:relative;margin:10px 0;padding:0 15px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row>*,#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row>.dlm-file-version__file_present>*{width:100%}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row>.dlm-file-version__file_present>:not(.hidden,.dlm-uploader-editor),#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row>:not(.hidden,.dlm-uploader-editor){display:block}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row .dlm-file-version__flex{display:flex;flex-direction:row;justify-content:space-between;align-content:center;align-items:center}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row .dlm-file-version__flex *{display:inline-block;vertical-align:middle}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row .dlm-file-version__inline>*{display:inline-block;vertical-align:middle;margin-right:25px;margin-bottom:25px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row .dlm-file-version__date>*{display:inline-block;width:auto}#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__row .dlm-file-version__hashes{display:flex;flex-wrap:wrap;justify-content:space-between;margin-top:25px}#download-monitor-file .dlm-metaboxes-wrapper #dlm-new-upload{padding:0 15px}#download-monitor-file .dlm-metaboxes-wrapper #dlm-new-upload,#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__uploader{position:relative}#download-monitor-file .dlm-metaboxes-wrapper #dlm-new-upload .drag-drop .drag-drop-inside,#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__uploader .drag-drop .drag-drop-inside{width:100%;margin-top:25px}#download-monitor-file .dlm-metaboxes-wrapper #dlm-new-upload .drag-drop .drag-drop-inside .dlm_browse_for_file,#download-monitor-file .dlm-metaboxes-wrapper .dlm-file-version__uploader .drag-drop .drag-drop-inside .dlm_browse_for_file{float:none}#download-monitor-file .dlm-metaboxes-wrapper .dlm-uploading-file{background:#f0f0f0;position:absolute;overflow:hidden;width:100%;height:100%;top:0;left:0;z-index:989}#download-monitor-file .dlm-metaboxes-wrapper .dlm-uploading-file:before{content:"";position:absolute;left:0;height:3px;width:100%;right:0;top:0;background:#d8d8d8}#download-monitor-file .dlm-metaboxes-wrapper .dlm-uploading-file label{text-align:center;padding:5px 0 7px 0;position:absolute;top:50%;transform:translateY(-50%);width:100%}#download-monitor-file .dlm-metaboxes-wrapper .dlm-uploading-file label.hidden{display:none}#download-monitor-file .dlm-metaboxes-wrapper .dlm-uploading-file label span{font-weight:700}#download-monitor-file .dlm-metaboxes-wrapper .dlm-uploading-file .dlm-uploading-progress-bar{background:#2271b1;height:3px;position:absolute;top:0}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox{border:1px solid #cecece;margin:10px 0!important;box-shadow:0 4px 6px rgba(0,0,0,.05)}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3{margin:0!important;padding:10px 10px 8px 10px!important;font-size:1em!important;overflow:hidden;zoom:1;cursor:pointer;position:relative;border-bottom:1px solid #cecece}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3:before{content:"\f140";display:block;font:normal 22px/1 dashicons;speak:none;position:absolute;right:15px;color:#787c82}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3.opened:before{content:"\f142"}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 span.remove_file{float:right;margin-right:30px;color:#787C8250;transition-duration:.2s;position:relative}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 span.remove_file:hover{color:red}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 strong{line-height:30px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 select{font-family:sans-serif}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox h3 .handlediv{background-position:6px 5px!important;display:none!important;height:24px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox:hover h3 .handlediv{display:block}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox .dlm-download-count-button{width:auto;min-width:50px;display:inline-block}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table{width:100%;position:relative;background:#fff;padding:3px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td{text-align:left;padding:6px 6px;vertical-align:top;border:0;line-height:26px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td label{text-align:left;display:block;line-height:21px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td .dlm-uploading-file label{text-align:center}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input{float:left;min-width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td textarea{width:100%;margin:0;display:block;font-size:14px;padding:4px;color:#555}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td textarea{height:7.5em}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td select{width:100%}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.short{width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.checkbox{width:auto;min-width:inherit;vertical-align:middle;display:inline;float:none}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.date-picker-field{width:50%;min-width:inherit;float:none;display:inline}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.hour,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td input.minute{width:2em;min-width:inherit;float:none;display:inline}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table td.attribute_name{width:200px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .minus,#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .plus{margin-top:6px}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .fl{float:left}#download-monitor-file .dlm-metaboxes-wrapper .dlm-metabox table .fr{float:right}#download-monitor-file .dlm-metaboxes-wrapper .plus:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f132";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .minus:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f460";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_upload_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f317";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_media_library:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f104";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_browse_for_file{float:right}#download-monitor-file .dlm-metaboxes-wrapper .dlm_browse_for_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f322";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_browse_for_file .dlm_browse_for_file:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f322";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-file .dlm-metaboxes-wrapper .dlm_external_source:before{font-family:dashicons!important;speak:none;font-weight:400;font-variant:normal;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0 4px 0 0;content:"\f103";top:1px;left:-1px;font-size:1em;line-height:inherit;position:relative;vertical-align:top}#download-monitor-information .dlm_information_panel div p{overflow:hidden;width:100%;font-weight:700;box-sizing:border-box;line-height:28px;margin-bottom:5px}#download-monitor-information .dlm_information_panel input{margin:0;border-top-right-radius:0;border-bottom-right-radius:0;flex-grow:1;width:calc(100% - 45px)}#download-monitor-product-information .dlm_information_panel div p{overflow:hidden;width:100%;font-weight:700;box-sizing:border-box;line-height:28px;margin-bottom:5px}#download-monitor-product-information .dlm_information_panel input{margin:0;border-top-right-radius:0;border-bottom-right-radius:0;flex-grow:1;width:calc(100% - 45px)}#download-monitor-options .inside{padding:0;margin:0}#download-monitor-options .form-field-checkbox label{display:inline;padding:0 0 4px}#download-monitor-options .form-field-checkbox input{display:inline-block;width:auto;vertical-align:middle}#download-monitor-options .form-field-checkbox .dlm-description{padding:4px 0 0 0;display:block}#download-monitor-options .access_permissions{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-options .access_permissions h4{margin-bottom:.5em;margin:0 0 .5em}#download-monitor-options .access_permissions ul{background:#fff;border:1px solid #dfdfdf;height:110px;overflow:auto;padding:.5em .9em;margin:0}#download-monitor-options p{margin:0!important;border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;padding:7px 12px!important;overflow:hidden;zoom:1}#download-monitor-options p.not-active{opacity:.7}#download-monitor-options .options_upsell_link{color:unset;text-decoration:none}#download-monitor-options .dlm-upsell-badge{font-size:10px;background:#f4daa4;padding:2px 5px;display:inline-block;margin-left:5px;border-radius:10px}#download-monitor-options .dlm-upsell-badge{font-size:10px;background:#f4daa4;padding:2px 5px;display:inline-block;margin-left:5px;border-radius:10px}#insert-download{padding:20px 20px}#insert-download #drag-drop-area,#insert-download #insert-shortcode{margin:1em 0}#insert-download .error,#insert-download .updated{margin-left:0;margin-right:0}#insert-download h2{margin-top:0}#insert-download label{margin:0 0 .25em 0;display:block;font-size:1.1em}#insert-download span.description{display:block}#insert-download input.input{margin:0 0 .25em 0;display:block;width:100%;font-size:1.1em}#insert-download .add_link{float:right}#insert-download ul.page-numbers{overflow:hidden;zoom:1;margin:0 auto;padding:0;text-align:center}#insert-download ul.page-numbers li{display:inline-block;margin:0;list-style:none outside;line-height:1em}#insert-download ul.page-numbers li a,#insert-download ul.page-numbers li span{text-decoration:none;border:1px solid #ddd;-webkit-border-radius:4px;border-radius:4px;padding:8px;display:block}#insert-download ul.page-numbers li span{border-color:#eee}#insert-download legend{font-weight:700;display:block;margin:0 0 1em}#insert-download fieldset label{display:block;margin:0 0 .5em}.dlm-code-nginx-rules{display:block}.settings_panel .form-table td{padding-left:0}.settings_panel .dlm-lazy-select-loader{display:inline-block;vertical-align:middle;padding:0 0 0 3px}.settings_panel .dlm-lazy-select-loader img{display:inline-block;height:25px;width:25px;margin-top:1px}.dlm_download_page_download-monitor-reports{position:relative}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports{margin:40px 20px 0 0;position:relative}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-spinner{position:absolute;top:0;left:0;width:100%;height:100%;background:#fff;z-index:9999;color:#000;text-align:center}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-spinner span{display:inline-block;width:80px;height:80px}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-spinner span::after{content:" ";display:block;width:64px;height:64px;margin:8px;border-radius:50%;border:6px solid #000;border-color:#000 transparent #000 transparent;animation:dlmRotate 1.2s linear infinite}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .reports-block{background-color:#fff;margin-top:25px;border:1px solid #e0e0e0;box-sizing:border-box}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .half-reports-block{width:calc(50% - 45px)}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-loading-data{display:flex;flex-flow:column;align-items:center;justify-content:center;align-content:center;position:absolute;top:0;text-align:center;width:100%;height:100%;background:#fff;max-width:100%;margin:0 auto;font-size:36px;z-index:30}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header{display:flex;justify-content:space-between;background-color:#fff;border:1px solid #ddd}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-heading{font-weight:700}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-page-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;align-content:center;display:flex}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-insights-navigation .dlm-insights-tab-navigation{display:flex;flex-wrap:wrap;justify-content:flex-start;border-bottom:1px solid #e0e0e0;overflow:hidden;margin:0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-insights-navigation .dlm-insights-tab-navigation .dlm-insights-tab-navigation__element{width:33%;min-width:200px;height:100%;padding:24px;cursor:pointer;margin-bottom:0;background-color:#f8f9fa;border-top:4px solid;border-top-color:#f1f1f1;border-left:1px solid #e0e0e0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-insights-navigation .dlm-insights-tab-navigation .dlm-insights-tab-navigation__element:last-of-type{border-right:1px solid #e0e0e0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-insights-navigation .dlm-insights-tab-navigation .dlm-insights-tab-navigation__element.active{background-color:#fff;border-top-color:#3858e9}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-insights-navigation .dlm-insights-tab-navigation .dlm-insights-tab-navigation__element .dlm-insights-tab-navigation__label{display:block;width:100%;font-size:16px;font-weight:700}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-insights-navigation .dlm-insights-tab-navigation .dlm-insights-tab-navigation__element .dlm-insights-tab-navigation__description{display:block;width:100%;font-size:12px;font-style:italic;color:#646161}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;align-content:center;display:flex}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-per-page{margin-left:10px;margin-right:15px}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions:hover{border-color:#4338ca}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions:focus{border-color:#4338ca;box-shadow:0 0 3px #4338ca}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-period,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions a.dlm-reports-header-chart-switcher{margin:0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector{display:flex;align-items:center;min-height:32px;position:relative;font-size:14px;padding:0 .5em 0 5px;user-select:none;cursor:pointer;margin:0 15px;transition:.8s ease-in;opacity:1;min-width:230px}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector.disabled{pointer-events:none;opacity:0;display:none}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector>label{font-size:12px;font-style:italic;top:-20px;display:block;width:100%;position:absolute}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm-reports-header-period{display:flex;align-content:center;align-items:center;border:1px solid #ccc;border-left:0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm-reports-header-period a,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm-reports-header-period a:hover{height:100%;border:0;background:#fff;box-shadow:none}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm-reports-header-period a.active,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm-reports-header-period a:hover.active{background:#ccc}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector #dlm_date_range_picker .date-picker-wrapper{background:#fff;border:0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm-arrow:before{font-family:dashicons!important;content:"\f140";font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;text-align:center;font-variant:normal;text-transform:none;font-size:1.6em;vertical-align:middle}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay{display:flex;width:auto;background:#fff;position:absolute;top:30px;right:0;z-index:10;overflow:hidden;border-radius:5px;box-shadow:0 0 3px rgba(0,0,0,.6)}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date{font-size:70%;margin-right:5px;float:left;z-index:11;padding:15px}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline{border:0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline .ui-state-highlight{background:#e6e6e6 url(../images/jquery-ui/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;color:#555;border:1px solid #d3d3d3}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline .ui-state-active{border:1px solid #aaa;background:#fff url(../images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline td,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline th{padding:0;margin:0;line-height:2em}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline td a,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_date .ui-datepicker-inline th a{text-align:center!important}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .dlm_rdrs_actions{width:70px;padding-left:10px;text-align:center;display:flex}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .footer{position:absolute;left:0;top:0;height:100%;padding-top:0;padding-bottom:0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .footer .shortcuts{border-right:1px solid rgba(0,0,0,.6);margin-top:0;margin-bottom:0;display:flex;flex-flow:column;justify-content:center;height:100%}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .footer .shortcuts a{text-align:left;padding:5px 40px 5px 10px;min-width:100px;color:#000;text-decoration:none}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-header .dlm-reports-actions .dlm-reports-header-date-selector .dlm_rdrs_overlay .date-picker-wrapper .footer .shortcuts a:hover{color:#4338ca;background:rgba(204,204,204,.3)}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-chart-icon{display:block;padding-right:15px;color:#23282d}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports #dlm-toggle-settings{cursor:pointer;position:relative}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports #dlm-toggle-settings:before{color:#0081a7}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports #dlm-toggle-settings .dlm-toggle-settings__settings{width:300px;position:absolute;top:0;left:-335px;padding:15px;background:#fff;z-index:3;text-align:left;display:none}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports #dlm-toggle-settings .dlm-toggle-settings__settings.display{display:block}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports #dlm-toggle-settings .dlm-toggle-settings__settings>div{margin:15px 0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-tab-navigation__content{display:none;width:100%;flex-direction:row;justify-content:space-between;flex-wrap:wrap;position:relative}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-insights-tab-navigation__content.active{display:flex}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm_reports_loader{position:absolute;width:32px;height:32px;top:50%;left:50%;margin:-16px 0 0 -16px}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .downloads-block-navigation{text-align:center;padding:7px 0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .downloads-block-navigation>*{vertical-align:middle;display:inline-block}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .downloads-block-navigation>span{color:grey}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .downloads-block-navigation .dlm-reports-total-pages{margin-right:15px}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .downloads-block-navigation button{border:0;color:#000;font-size:1rem;cursor:pointer;margin:0;box-shadow:transparent 0 0 0 0,transparent 0 0 0 0,rgba(0,0,0,.1) 0 1px 3px 0,rgba(0,0,0,.06) 0 1px 2px 0;background-color:#fff;width:24px;vertical-align:middle}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .downloads-block-navigation button[disabled]{opacity:.5;cursor:default}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block{position:relative;box-sizing:border-box;width:100%;overflow:hidden}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block .wpchill-tooltip i{color:inherit;opacity:.6}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block.dlm-reports-block-half{width:49%;margin-right:1%}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block.dlm-reports-block-half-right{width:49%;margin-left:1%}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block .dlm-reports-placeholder-no-data{display:inline-block;width:100%;font-size:1.5em;color:#b4b9be;font-style:italic;text-align:center}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul{width:100%}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li{position:relative}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li:not(:first-of-type){border-left:1px solid #e0e0e0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li:last-of-type{border-right:1px solid #e0e0e0}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li label,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li span{display:block;width:100%}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li span{font-size:18px;line-height:28px;font-weight:700}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li:first-child label,.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports .dlm-reports-block ul li:first-child span{border:none}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports-wrapper{width:100%}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports-block-summary ul{display:flex;flex-direction:row;justify-content:initial}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports-block-summary ul li{width:12.5%;padding:24px;margin:0;font-weight:600}.dlm_download_page_download-monitor-reports #wpcontent .dlm-reports-block-summary label{font-size:14px;line-height:20px;margin-bottom:16px;color:#757575;font-weight:400}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper{max-width:100%;background-color:#fff;padding:15px 24px;position:relative;border:1px solid #e0e0e0}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-reports-block-chart{width:100%;height:300px;margin-top:20px;background:#fff;overflow:hidden}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-reports-block-chart .chart-container h6{display:none}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-canvas-tooltip{border-radius:10px;color:#fff;background-color:#1f2937;opacity:1;pointer-events:none;position:absolute;transform:translate(-50%,0);transition:all .1s ease;padding:10px 15px;text-align:left;z-index:99}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-canvas-tooltip .dlm-reports-tooltip__downloads{font-size:18px;margin:0 auto;font-weight:700;position:relative;padding-left:15px}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-canvas-tooltip .dlm-reports-tooltip__downloads .dlm-reports-tooltip__downloads_pointer{width:5px;height:5px;display:inline-block;position:absolute;top:50%;transform:translateY(-50%);left:0}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-canvas-tooltip .dlm-reports-tooltip__info{font-size:12px;margin:0 auto}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-canvas-tooltip .dlm-reports-tooltip__date{font-size:13px;margin:0 auto;font-weight:600}.dlm_download_page_download-monitor-reports #wpcontent .total_downloads_chart-wrapper .dlm-reports-tooltip__line{height:calc(100% - 110px);width:0;background:0 0;z-index:1;position:absolute;top:65px!important;border:1px dashed #000}.dlm_download_page_download-monitor-reports #wpcontent #total_downloads_table_wrapper h3,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper h3{margin-top:0}.dlm_download_page_download-monitor-reports #wpcontent #total_downloads_table_wrapper.empty,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper.empty{display:none}.dlm_download_page_download-monitor-reports #wpcontent #total_downloads_table_wrapper #users_download_log,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper #users_download_log{margin-top:25px}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper{width:100%;margin-top:35px}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper #users_download_log{padding:0!important}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header{background:#f9fafb}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line{font-weight:700;display:table;width:100%;margin-bottom:17px;padding:1rem 10px}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header:not(:last-child),.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line:not(:last-child){border-bottom:1px solid #dedede}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header .dlm-reports-top-downloads__download_status,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line .dlm-reports-top-downloads__download_status{border-radius:10px;padding:10px;text-transform:capitalize}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header .dlm-reports-top-downloads__download_status.completed,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line .dlm-reports-top-downloads__download_status.completed{background:#adff2f60}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header .dlm-reports-top-downloads__download_status.redirected,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line .dlm-reports-top-downloads__download_status.redirected{background:#fffF0060}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header .dlm-reports-top-downloads__download_status.failed,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line .dlm-reports-top-downloads__download_status.failed{background:#ff000060}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header>div,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line>div{width:calc(15% - 3px);display:inline-block;text-align:left!important;flex-grow:unset!important}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header>div:last-child,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line>div:last-child{width:calc(10% - 2px);text-align:right!important}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header>div .dlm-user-reports .wpchill-tooltip,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line>div .dlm-user-reports .wpchill-tooltip{font-size:12px}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header>div .dlm-user-reports .wpchill-tooltip .wpchill-tooltip-content,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line>div .dlm-user-reports .wpchill-tooltip .wpchill-tooltip-content{font-size:16px;line-height:18px;text-align:center}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header>div .dlm-user-reports .wpchill-tooltip .wpchill-tooltip-content span,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line>div .dlm-user-reports .wpchill-tooltip .wpchill-tooltip-content span{font-size:16px;line-height:18px;text-align:center;display:block}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__header a,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .dlm-reports-top-downloads__line a{text-decoration:none}.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .user-downloads-filters .user-downloads-filters__filter,.dlm_download_page_download-monitor-reports #wpcontent #users_downloads_table_wrapper .user-downloads-filters .user-downloads-filters__heading{display:inline-block}.dlm_download_page_download-monitor-reports div[data-id=user_reports] #user_downloads_summary ul .wpchill-tooltip,.dlm_download_page_download-monitor-reports div[data-id=user_reports] #users_downloads_table_wrapper ul .wpchill-tooltip{font-size:14px}.dlm_download_page_download-monitor-reports div[data-id=user_reports] #user_downloads_summary ul .wpchill-tooltip .wpchill-tooltip-content,.dlm_download_page_download-monitor-reports div[data-id=user_reports] #users_downloads_table_wrapper ul .wpchill-tooltip .wpchill-tooltip-content{font-size:16px;line-height:18px;text-align:center}.dlm_download_page_download-monitor-reports div[data-id=user_reports] #user_downloads_summary ul .wpchill-tooltip .wpchill-tooltip-content span,.dlm_download_page_download-monitor-reports div[data-id=user_reports] #users_downloads_table_wrapper ul .wpchill-tooltip .wpchill-tooltip-content span{font-size:16px;line-height:18px;text-align:center;display:block}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__table{width:100%;border-collapse:collapse}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__filters{background-color:#f8f9fa;border-bottom:1px solid #e2e4e7}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__filters>th{padding:16px;font-weight:700;text-align:left}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__header{font-weight:700;width:100%;margin-bottom:17px}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__header .dlm-reports-header-left,.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__header .dlm-reports-header-right{margin-bottom:15px;font-size:12px;color:#6b7280}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__header .dlm-reports-header-left{padding-left:36px}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__header .dlm-reports-header-right{text-align:right}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__line{background-color:#fff;border-bottom:1px solid #e2e4e7}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__line:hover{background-color:#e0e0e0;cursor:pointer}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__line>td{padding:16px;font-size:.8125rem;text-align:left;color:#192a3d;font-weight:500}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__line .dlm-reports-table__overflower{position:absolute;height:100%;background:#f5f5fc;z-index:-1}.dlm_download_page_download-monitor-reports .dlm-reports-table .dlm-reports-table__line a{color:#0081a7;padding:8px;display:block;font-weight:500}.dlm_download_page_download-monitor-reports input.dlm-reports-current-page{display:inline-block;width:75px;vertical-align:middle}.post-type-dlm_product table.wp-list-table .column-title{width:65%!important}.dlm_mb_shop_product_information .dlm_shop_field_row{width:100%;overflow:hidden}.dlm_mb_shop_product_information .dlm_shop_field_row label.dlm_shop_field_label{display:inline-block;width:20%;height:100%;line-height:2.2em;float:left}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input{display:inline-block;width:50%;float:left}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .dlm_shop_input{width:100%;padding:5px 7px}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-selection--multiple{border:1px solid #ddd}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-search,.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-selection__choice{margin-bottom:0}.dlm_mb_shop_product_information .dlm_shop_field_row span.dlm_shop_field_input .select2-search__field{padding-top:3px}.dlm-order-overview #dlm_empty_trash{margin-left:3px}.dlm-order-overview .wp-list-table td .column-id{width:25%}.dlm-order-details{max-width:1250px;margin-left:auto;margin-right:auto;padding-right:20px}.dlm-order-details h1{padding-bottom:25px}.dlm-order-details .dlm-order-details-main,.dlm-order-details .dlm-order-details-side{width:100%;float:left}.dlm-order-details .dlm-order-details-block{padding:0;margin-bottom:20px;line-height:1;border:1px solid #e5e5e5;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,.04)}.dlm-order-details .dlm-order-details-block h2.dlm-order-details-block-title{font-size:14px;padding:8px 12px;margin:0;line-height:1.4;border-bottom:1px solid #eee}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside{margin:6px 0 0 0;padding:6px 12px 12px;line-height:1.4em;font-size:13px}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside label{display:block;font-weight:700;padding-bottom:6px}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside p{padding:0;margin:0}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside ul,.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside ul li{list-style:none;padding:0;margin:0}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside ul li{padding:6px 0}.dlm-order-details .dlm-order-details-block .dlm-order-details-block-inside .dlm-order-details-current-state{width:70%;height:30px}.dlm-order-details .dlm-order-details-block.dlm-order-details-customer .dlm-order-details-customer-image{float:right}.dlm-order-details .dlm-order-details-block.dlm-order-details-customer ul li{margin-bottom:4px;padding:0}.dlm-order-details .dlm-order-details-block.dlm-order-details-customer ul li:first-child{font-weight:700}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items{overflow:hidden}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview{width:25%;float:right}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview td,.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview th{padding-top:1.5em;padding-bottom:1.5em;text-align:right}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview th{width:50%;font-weight:400}.dlm-order-details .dlm-order-details-block.dlm-order-details-order-items .dlm-order-details-overview td{padding-right:1em;font-weight:700}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table{width:100%}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th{text-align:center}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td:first-child,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th:first-child{text-align:left;padding-left:.5em}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th{padding-top:.5em;padding-bottom:.5em;border-bottom:2px solid #c3c1bc}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td{padding-top:1.5em;padding-bottom:1.5em;border-bottom:1px solid #c3c1bc}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td.dlm-order-details-order-items-item-total,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th.dlm-order-details-order-items-item-total{text-align:right;padding-right:1em}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td.dlm-order-transaction-processor-id,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th.dlm-order-transaction-processor-id{display:none}.dlm-order-details .dlm-order-details-block .dlm-order-details-update-successful{font-size:2em;padding:.2em .3em;color:#46b450}@media (min-width:768px){.dlm-order-details .dlm-order-details-main{width:62%;float:left}.dlm-order-details .dlm-order-details-side{width:35%;float:right}.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table td.dlm-order-transaction-processor-id,.dlm-order-details .dlm-order-details-block table.dlm-order-details-data-table th.dlm-order-transaction-processor-id{display:table-cell}}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-one-col{margin:0 auto;max-width:800px}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-cta{margin-top:40px;text-align:center}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col{max-width:680px;margin:40px auto 0;overflow:hidden;display:flex;justify-content:space-between;flex-wrap:wrap}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col .dlm-onboarding-col{padding-top:2.5em;flex:1;align-self:flex-start;min-width:100%;max-width:100%}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col .dlm-onboarding-col img{width:100%}.dlm-onboarding .dlm-onboarding-section h2{margin:60px 0 .6em;font-size:2.7em;line-height:1.3;font-weight:300;text-align:center}.dlm-onboarding .dlm-onboarding-section p{max-width:55em;margin:.6em auto 0 auto}.dlm-onboarding .dlm-onboarding-section a.button-hero{height:46px;font-size:14px;line-height:44px;padding:0 36px;font-weight:700;text-align:center}.dlm-onboarding .dlm-onboarding-pages{max-width:55em;margin:0 auto;padding:2em 0 0}.dlm-onboarding .dlm-onboarding-pages a.button-hero{width:170px}.dlm-onboarding .dlm-onboarding-pages a.button-hero.dlm-page-exists{background:#46b450;border-color:#46b450 #4a8442 #467a3f;box-shadow:0 2px 0 #467a3f;text-shadow:0 -1px 1px #4a8442,1px 0 1px #4a8442,0 1px 1px #4a8442,-1px 0 1px #4a8442}.dlm-onboarding .dlm-onboarding-pages a.button-hero.dlm-page-exists:active{box-shadow:0 2px 0 #467a3f}.dlm-onboarding .dlm-onboarding-pages td,.dlm-onboarding .dlm-onboarding-pages th{padding:1em 0;border-bottom:1px solid #ccc}.dlm-onboarding .dlm-onboarding-pages th{width:13%;min-width:6em;text-align:left}.dlm-onboarding .dlm-onboarding-pages td{padding-right:.5em;padding-left:.5em}.dlm-onboarding .dlm-onboarding-pages td.dlm-onboarding-pages-page-title{font-weight:700}@media (min-width:768px){.dlm-onboarding .dlm-onboarding-section .dlm-onboarding-pages{width:55em}.dlm-onboarding .dlm-onboarding-section.dlm-onboarding-section-three-col .dlm-onboarding-col{padding-top:0;min-width:31%;max-width:31%}}.dlm_extensions_wrap a.dlm-reload-button{float:right;position:relative;top:-40px}.dlm_extensions_wrap #available-extensions{clear:both}.dlm_extensions_wrap .dlm_extensions{padding:15px 0;overflow:hidden}.dlm_extensions_wrap .dlm_extensions .dlm_extension{background-color:#fff;width:calc(20% - 15px);margin:0 15px 15px 0;display:inline-block;vertical-align:top}.dlm_extensions_wrap .dlm_extensions .dlm_extension p{margin:0}.dlm_extensions_wrap .dlm_extensions .dlm_extension a{color:#444;text-decoration:none}.dlm_extensions_wrap .dlm_extensions .dlm_extension .dlm_extension_img_wrapper{width:100%;background:#419ccb;text-align:center}.dlm_extensions_wrap .dlm_extensions .dlm_extension .dlm_extension_img_wrapper img{max-width:100%;margin:0 auto}.dlm_extensions_wrap .dlm_extensions .dlm_extension h3{min-height:40px;padding:0 20px}.dlm_extensions_wrap .dlm_extensions .dlm_extension div.extension-desc{min-height:120px;padding:0 20px}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer{padding:15px 15px 15px 0;text-align:right;background-color:#fafafa;border-top:1px solid #dcdcde}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .loop_price{font-weight:700}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .loop_price.sale{color:green}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .loop_price.sale strike{color:#444}.dlm_extensions_wrap .dlm_extensions .dlm_extension .product_footer .button .dashicons{vertical-align:middle;font-size:16px}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license{padding:0 20px 20px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license div.dlm_license_error{padding:.5em;margin-bottom:15px;background:#ffffe0}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license div.dlm_license_error a{color:#00f;text-decoration:underline}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license p.license-status{padding:5px 0;margin:5px 0;background:red;font-weight:700;font-size:1.2em;color:#fff;text-align:center}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license p.license-status.active{background:green}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license input{width:100%;margin:7px 0;padding:7px}.dlm_extensions_wrap .dlm_extensions .dlm_extension .extension_license a.button-primary{width:100%;margin:5px auto 0;color:#fff;text-align:center}#ui-datepicker-div{display:none}.wpchill-upsell{background:#fff;padding:15px;margin-top:30px;position:relative}.wpchill-upsell .wpchill-upsell-features{text-align:left;display:flex;flex-wrap:wrap;padding:20px 0}.wpchill-upsell .wpchill-upsell-features li{width:33%}.wpchill-upsell a:first-child{margin-right:10px}.wpchill-upsells-wrapper{width:100%}.wpchill-upsells-wrapper .wpchill-upsell{border:1px solid #cecece;border-radius:5px;text-align:center}.wpchill-upsells-wrapper .wpchill-upsell img{max-width:100px;max-height:100px;height:auto;width:auto}.wrap.dlm-admin-settings .form-table{width:65%;float:left}.wrap.dlm-admin-settings .form-table+.wpchill-upsells-wrapper{width:30%;float:right}.wrap.dlm-admin-settings .form-table .dlm_htaccess_notice{margin-bottom:5px}.wrap.dlm-admin-settings .dlm-upsell-badge{font-size:10px;background:#f4daa4;padding:2px 5px;display:inline-block;margin-left:10px;border-radius:10px}.wrap.dlm-admin-settings #setting-dlm_downloads_path+p strong{color:red}.wrap.dlm-admin-settings #setting-dlm_downloads_path .dlm-install-plugin-actions{display:inline-block;vertical-align:middle;margin:5px auto;margin-left:15px}#total_downloads_browser_table a.nav-tab{text-transform:capitalize}#dlm-amazon-s3-upsell .inside,#dlm-buttons-upsell .inside,#dlm-download-page-upsell .inside,#dlm-google-drive-upsell .inside{display:flex;flex-wrap:wrap;background:#f1f1f1}#dlm-amazon-s3-upsell .inside .wpchill-upsell,#dlm-buttons-upsell .inside .wpchill-upsell,#dlm-download-page-upsell .inside .wpchill-upsell,#dlm-google-drive-upsell .inside .wpchill-upsell{background:#fff;text-align:center;width:100%;margin-top:0}#dlm-amazon-s3-upsell .inside,#dlm-buttons-upsell .inside,#dlm-download-page-upsell .inside,#dlm-google-drive-upsell .inside{margin:0;padding:0}.upsells-columns .dlm-available-with-pro,.wpchill-upsells-wrapper .dlm-available-with-pro{width:auto;border-radius:0 5px 0 5px;background:#2271b1;color:#fff;position:absolute;top:-1px;right:-1px;display:flex;align-content:center;border-top:0;border-left:0;padding:5px 8px 2px 5px}.upsells-columns .dlm-available-with-pro>*,.wpchill-upsells-wrapper .dlm-available-with-pro>*{font-size:12px}.upsells-columns .dlm-available-with-pro>.dashicons,.wpchill-upsells-wrapper .dlm-available-with-pro>.dashicons{line-height:15px}.upsells-columns{display:flex;flex-wrap:wrap;align-items:center;align-content:center;padding-top:5px;margin-bottom:10px}.upsells-columns .upsells-columns-2{width:50%;text-align:center;display:flex;align-items:center;align-content:center}.upsells-columns .upsells-column{width:calc(100% - 30px);text-align:center;display:flex;align-items:center;align-content:center;margin:5px auto 0 auto;border-radius:5px;border:1px solid #cecece;overflow:hidden}.upsells-columns .upsells-column .dashicons-amazon{font-size:22px}.upsells-columns .upsells-column .dashicons-google{font-size:18px;position:relative;left:1px;top:1px}.upsells-columns .upsells-column .dashicons-lock:before{font-size:14px}.upsells-columns .upsells-column>*{display:inline-block;align-content:center;vertical-align:middle;margin:0 10px;padding:7px 0}.upsells-columns .upsells-column>.wpchill-upsell{position:relative;float:none;flex-grow:1;display:flex;align-items:center;margin:0}.upsells-columns .upsells-column>.wpchill-upsell .wpchill-upsell-description{margin:0;text-align:left;max-width:535px;font-size:12px}.upsells-columns .upsells-column h3{line-height:1.3em;font-size:1em;margin-left:0}.upsells-columns .upsells-column:last-child{border-top:1px solid #c3c4c7;border-bottom:1px solid #c3c4c7}.upsells-columns .wpchill-upsell{margin-top:0}.disabled-link{color:currentColor;cursor:not-allowed;opacity:.5;text-decoration:none}.text-right{text-align:right}.dlm_download_page_dlm-lite-vs-pro,.dlm_download_page_dlm-lite-vs-pro p{font-size:14px;margin:0}.dlm_download_page_dlm-lite-vs-pro>.wpchill-plans-table.wpchill-highlight>.wpchill-pricing-package{background:#fefff0;box-shadow:0 0 15px #d0dbdb}.dlm_download_page_dlm-lite-vs-pro .wp-badge{display:inline-block;vertical-align:middle;position:relative;margin-right:2.5%}.dlm_download_page_dlm-lite-vs-pro h3{display:block;position:relative;font-size:16px;margin:0}.dlm_download_page_dlm-lite-vs-pro .wpchill-plans-table{display:flex}.dlm_download_page_dlm-lite-vs-pro .wpchill-plans-table.table-header{margin-top:50px;border-top:0}.dlm_download_page_dlm-lite-vs-pro .wpchill-plans-table.table-header .wpchill-pricing-package{border:0}.dlm_download_page_dlm-lite-vs-pro .wpchill-plans-table.table-header .wpchill-pricing-package.wpchill-title.wpchill-highlight::before,.dlm_download_page_dlm-lite-vs-pro .wpchill-plans-table.table-header .wpchill-pricing-package:not(.wpchill-modula-lite):last-child:before{content:'';width:auto;display:inline-block;opacity:1;position:absolute;top:-1px;background:#41495b;text-align:center;left:0;right:0;color:#fff;font-size:15px;text-transform:uppercase;padding:10px 5px;transform:translateY(-100%)}.dlm_download_page_dlm-lite-vs-pro.table-footer .wpchill-pricing-package:last-child{border:0}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package{text-align:center;line-height:1.5;padding:10px 15px;display:flex;align-content:center;align-items:center;justify-content:center;background:#fff;border-top:1px solid #ccc;width:32%}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package:not(:first-child){max-width:300px}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title{font-weight:400;color:#666;font-size:1.25rem;height:auto;-ms-flex-direction:column;flex-direction:column;padding-top:30px;padding-bottom:30px;justify-content:space-between;position:relative}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title .wpchill-name{margin:0;font-size:36px}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title.wpchill-modula-lite{justify-content:center}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title p.description{font-style:italic;font-size:13px;margin-bottom:40px}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title .wpchill-price p:last-child{font-size:30px;margin:0 0 40px 0}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title .wpchill-price p.old-price{margin:0;position:relative}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title .wpchill-price p.old-price:after{content:"";height:2px;width:60px;background:red;display:block;position:absolute;left:50%;top:52%;transform:translate(-50%,-50%)}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-title .wpchill-price sup{top:2px;position:relative;font-size:15px}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.wpchill-empty{background:0 0;border-color:transparent}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package.feature-name{justify-content:space-between;font-weight:400;text-align:left;font-size:13px;display:block;background:0 0}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package .dashicons-saved{color:green}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package .dashicons{width:30px;height:30px;font-size:30px}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package .dashicons-no-alt{color:#ff3439}.dlm_download_page_dlm-lite-vs-pro .wpchill-pricing-package:last-child{background:#fefff0}.dlm_download_page_dlm-lite-vs-pro .button .dashicons{font-size:16px;vertical-align:middle;line-height:26px}.wpchill-tooltip{position:relative;display:inline-block;margin-right:10px}.wpchill-tooltip>i{cursor:pointer;color:rgba(0,0,0,.6);margin-left:5px;font-style:normal}.wpchill-tooltip .wpchill-tooltip-content{display:none;position:absolute;top:50%;right:-10px;transform:translate(100%,-50%);width:300px;background:#000;color:#fff;padding:10px;box-sizing:border-box;z-index:99}.wpchill-tooltip .wpchill-tooltip-content:before{content:'';width:0;height:0;border-style:solid;border-width:8px 8px 8px 0;border-color:transparent #000 transparent transparent;display:block;position:absolute;top:50%;left:-8px;transform:translateY(-50%)}.wpchill-tooltip:hover .wpchill-tooltip-content{display:block}.dlm_download_page_dlm-extensions .theme.dlm_extension{background-color:#fff}.wpchill-tooltip{position:relative;display:inline-block;float:left;margin-right:10px}.wpchill-tooltip>span{cursor:pointer;color:#0073aa;text-decoration:underline;margin-left:5px}.wpchill-tooltip .wpchill-tooltip-content{display:none;position:absolute;top:50%;right:-10px;transform:translate(100%,-50%);width:300px;background:#000;color:#fff;padding:10px;box-sizing:border-box;z-index:99}.wpchill-tooltip:hover .wpchill-tooltip-content{display:block}.wpchill-tooltip .wpchill-tooltip-content:before{content:'';width:0;height:0;border-style:solid;border-width:8px 8px 8px 0;border-color:transparent #000 transparent transparent;display:block;position:absolute;top:50%;left:-8px;transform:translateY(-50%)}.wpchill-tooltip-button{position:relative}.wpchill-tooltip-button .wpchill-tooltip-content{display:none;position:absolute;top:50%;right:25px;transform:translate(50%,-135%);width:auto;background:rgba(0,0,0,.8);color:#fff;padding:10px 15px;box-sizing:border-box;font-size:14px;z-index:99}.wpchill-tooltip-button:hover .wpchill-tooltip-content{display:block}.wpchill-tooltip-button .wpchill-tooltip-content:before{content:'';width:0;height:0;border-style:solid;border-width:8px 8px 8px 0;border-color:transparent #000 transparent transparent;display:block;position:absolute;bottom:-12px;left:50%;transform:rotate(-90deg)}.dlm-file-link{display:block;margin-top:3px}.dlm-listing-no-file code{color:#b32d2e}.wpchill-toggle{position:relative;user-select:none;display:inline-block;vertical-align:middle}.wpchill-toggle .wpchill-toggle__items{box-sizing:border-box;display:inline-block;position:relative}.wpchill-toggle .wpchill-toggle__items>*{box-sizing:inherit}.wpchill-toggle .wpchill-toggle__items .wpchill-toggle__track{background-color:#fff;border:2px solid #6c7781;border-radius:9px;display:inline-block;height:18px;width:36px;vertical-align:top;transition:background .2s ease}.wpchill-toggle .wpchill-toggle__items .wpchill-toggle__thumb{background-color:#6c7781;border:5px solid #6c7781;border-radius:50%;display:block;height:10px;width:10px;position:absolute;left:4px;top:4px;transition:transform .2s ease;min-width:auto;min-height:auto;float:none;padding:0}.wpchill-toggle .wpchill-toggle__items .wpchill-toggle__off{position:absolute;right:6px;top:6px;color:#6c7781;fill:currentColor}.wpchill-toggle .wpchill-toggle__items .wpchill-toggle__on{position:absolute;top:6px;left:8px;border:1px solid #fff;outline:1px solid transparent;outline-offset:-1px;display:none}.wpchill-toggle .wpchill-toggle__input[type=checkbox]{border-radius:2px;border:2px solid #6c7781;margin-right:12px;transition:none;height:100%;left:0;top:0;margin:0;padding:0;opacity:0;position:absolute;width:100%;z-index:1}.wpchill-toggle .wpchill-toggle__input[type=checkbox]:checked+.wpchill-toggle__items .wpchill-toggle__track{background-color:#0081a7;border:9px solid transparent}.wpchill-toggle .wpchill-toggle__input[type=checkbox]:checked+.wpchill-toggle__items .wpchill-toggle__thumb{background-color:#fff;border-width:0;transform:translateX(18px)}.wpchill-toggle .wpchill-toggle__input[type=checkbox]:checked+.wpchill-toggle__items .wpchill-toggle__off{display:none}.wpchill-toggle .wpchill-toggle__input[type=checkbox]:checked+.wpchill-toggle__items .wpchill-toggle__on{display:inline-block}#total_downloads_table_wrapper2{width:100%;background-color:#fff;border:1px solid #e0e0e0;margin-top:30px;position:relative}#total_downloads_table_wrapper2 .total_downloads_table_header{padding:0 16px;height:70px;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center}#total_downloads_table_wrapper2 .total_downloads_table_header .total_downloads_table_exportcsv .dashicons{margin-right:5px}#total_downloads_table_wrapper2 .total_downloads_table_header h3{margin:0;line-height:1.2;color:#23282d;font-size:16px;font-weight:600;text-transform:capitalize}@keyframes dlmRotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.dlm-uploader-editor{position:absolute;z-index:99998;background:rgba(140,143,148,.9);top:0;left:0;right:0;bottom:0;text-align:center;display:none}.dlm-uploader-editor.droppable{background:rgba(10,75,120,.9)}.dlm-uploader-editor .uploader-editor-content{position:absolute;top:10px;left:10px;right:10px;bottom:10px;border:1px dashed #fff}.dlm-uploader-editor .uploader-editor-content .uploader-editor-title{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);font-size:3em;line-height:1.3;font-weight:600;color:#fff;margin:0;padding:0 10px}.dlm-notice-logo{width:auto;max-height:35px;max-width:35px;display:inline-block}.dlm-available-with-pro__overlay{pointer-events:none;background:#fff!important;opacity:.5}.dlm-available-with-pro__overlay.select{margin-left:10px}.dlm-available-with-pro__label{pointer-events:none;background:#80808080;padding:1px 5px;border-radius:5px;display:inline-block;vertical-align:middle;font-size:10px;color:#fff}.dlm-copy-shortcode-input{border:0!important;width:0;padding:0!important;outline:0}
assets/css/others.css CHANGED
@@ -65,9 +65,11 @@
65
  .dlm-ml-protected-file .thumbnail {
66
  box-shadow: 0 0 0.5rem rgba(0, 0, 255, 0.45);
67
  }
 
68
  .dlm-ml-protected-file:after {
69
  content: "";
70
- background: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4IDE0QzI4IDYuMjY4MDEgMjEuNzMyIDAgMTQgMEM2LjI2ODAxIDAgMCA2LjI2ODAxIDAgMTRDMCAyMS43MzIgNi4yNjgwMSAyOCAxNCAyOEMyMS43MzIgMjggMjggMjEuNzMyIDI4IDE0WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzM2XzM5KSIvPgo8cGF0aCBkPSJNMTcuNjE1NCAxMi41NjI1SDE3LjM3NVY5LjUxNTYyQzE3LjM3NSA4LjU4MzIyIDE2Ljk5NTEgNy42ODkwMSAxNi4zMTg5IDcuMDI5N0MxNS42NDI3IDYuMzcwNCAxNC43MjU1IDYgMTMuNzY5MiA2QzEyLjgxMjkgNiAxMS44OTU4IDYuMzcwNCAxMS4yMTk2IDcuMDI5N0MxMC41NDM0IDcuNjg5MDEgMTAuMTYzNSA4LjU4MzIyIDEwLjE2MzUgOS41MTU2MlYxMi41NjI1SDkuOTIzMDhDOS40MTMwNSAxMi41NjI1IDguOTIzOSAxMi43NiA4LjU2MzI2IDEzLjExMTdDOC4yMDI2MSAxMy40NjMzIDggMTMuOTQwMiA4IDE0LjQzNzVWMTkuMTI1QzggMTkuNjIyMyA4LjIwMjYxIDIwLjA5OTIgOC41NjMyNiAyMC40NTA4QzguOTIzOSAyMC44MDI1IDkuNDEzMDUgMjEgOS45MjMwOCAyMUgxNy42MTU0QzE4LjEyNTQgMjEgMTguNjE0NiAyMC44MDI1IDE4Ljk3NTIgMjAuNDUwOEMxOS4zMzU5IDIwLjA5OTIgMTkuNTM4NSAxOS42MjIzIDE5LjUzODUgMTkuMTI1VjE0LjQzNzVDMTkuNTM4NSAxMy45NDAyIDE5LjMzNTkgMTMuNDYzMyAxOC45NzUyIDEzLjExMTdDMTguNjE0NiAxMi43NiAxOC4xMjU0IDEyLjU2MjUgMTcuNjE1NCAxMi41NjI1VjEyLjU2MjVaTTExLjEyNSA5LjUxNTYyQzExLjEyNSA4LjgzMTg2IDExLjQwMzYgOC4xNzYxMSAxMS44OTk1IDcuNjkyNjJDMTIuMzk1NCA3LjIwOTEyIDEzLjA2NzkgNi45Mzc1IDEzLjc2OTIgNi45Mzc1QzE0LjQ3MDUgNi45Mzc1IDE1LjE0MzEgNy4yMDkxMiAxNS42MzkgNy42OTI2MkMxNi4xMzQ5IDguMTc2MTEgMTYuNDEzNSA4LjgzMTg2IDE2LjQxMzUgOS41MTU2MlYxMi41NjI1SDExLjEyNVY5LjUxNTYyWk0xNC4yNSAxNy45NTMxQzE0LjI1IDE4LjA3NzQgMTQuMTk5MyAxOC4xOTY3IDE0LjEwOTIgMTguMjg0NkMxNC4wMTkgMTguMzcyNSAxMy44OTY3IDE4LjQyMTkgMTMuNzY5MiAxOC40MjE5QzEzLjY0MTcgMTguNDIxOSAxMy41MTk0IDE4LjM3MjUgMTMuNDI5MyAxOC4yODQ2QzEzLjMzOTEgMTguMTk2NyAxMy4yODg1IDE4LjA3NzQgMTMuMjg4NSAxNy45NTMxVjE1LjYwOTRDMTMuMjg4NSAxNS40ODUxIDEzLjMzOTEgMTUuMzY1OCAxMy40MjkzIDE1LjI3NzlDMTMuNTE5NCAxNS4xOSAxMy42NDE3IDE1LjE0MDYgMTMuNzY5MiAxNS4xNDA2QzEzLjg5NjcgMTUuMTQwNiAxNC4wMTkgMTUuMTkgMTQuMTA5MiAxNS4yNzc5QzE0LjE5OTMgMTUuMzY1OCAxNC4yNSAxNS40ODUxIDE0LjI1IDE1LjYwOTRWMTcuOTUzMVoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzZfMzkiIHgxPSItNy41NDY4NyIgeTE9Ii00LjM3NSIgeDI9IjI1LjU5MzciIHkyPSIyOC43NjU2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIG9mZnNldD0iMC4xMTAxMTMiIHN0b3AtY29sb3I9IiM1RERFRkIiLz4KPHN0b3Agb2Zmc2V0PSIwLjQ0MzU2OCIgc3RvcC1jb2xvcj0iIzQxOUJDQSIvPgo8c3RvcCBvZmZzZXQ9IjAuNjM2MTIyIiBzdG9wLWNvbG9yPSIjMDA4Q0Q1Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAyNUVBMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=");
 
71
  display: block;
72
  width: 20px;
73
  height: 20px;
@@ -76,4 +78,10 @@
76
  top: 15px;
77
  right: 15px;
78
  background-size: contain;
 
 
 
 
 
 
79
  }
65
  .dlm-ml-protected-file .thumbnail {
66
  box-shadow: 0 0 0.5rem rgba(0, 0, 255, 0.45);
67
  }
68
+ .dlm-ml-file:after,
69
  .dlm-ml-protected-file:after {
70
  content: "";
71
+ background-color: rgba(255, 255, 255, 0.8);
72
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4IDE0QzI4IDYuMjY4MDEgMjEuNzMyIDAgMTQgMEM2LjI2ODAxIDAgMCA2LjI2ODAxIDAgMTRDMCAyMS43MzIgNi4yNjgwMSAyOCAxNCAyOEMyMS43MzIgMjggMjggMjEuNzMyIDI4IDE0WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzM2XzM5KSIvPgo8cGF0aCBkPSJNMTcuNjE1NCAxMi41NjI1SDE3LjM3NVY5LjUxNTYyQzE3LjM3NSA4LjU4MzIyIDE2Ljk5NTEgNy42ODkwMSAxNi4zMTg5IDcuMDI5N0MxNS42NDI3IDYuMzcwNCAxNC43MjU1IDYgMTMuNzY5MiA2QzEyLjgxMjkgNiAxMS44OTU4IDYuMzcwNCAxMS4yMTk2IDcuMDI5N0MxMC41NDM0IDcuNjg5MDEgMTAuMTYzNSA4LjU4MzIyIDEwLjE2MzUgOS41MTU2MlYxMi41NjI1SDkuOTIzMDhDOS40MTMwNSAxMi41NjI1IDguOTIzOSAxMi43NiA4LjU2MzI2IDEzLjExMTdDOC4yMDI2MSAxMy40NjMzIDggMTMuOTQwMiA4IDE0LjQzNzVWMTkuMTI1QzggMTkuNjIyMyA4LjIwMjYxIDIwLjA5OTIgOC41NjMyNiAyMC40NTA4QzguOTIzOSAyMC44MDI1IDkuNDEzMDUgMjEgOS45MjMwOCAyMUgxNy42MTU0QzE4LjEyNTQgMjEgMTguNjE0NiAyMC44MDI1IDE4Ljk3NTIgMjAuNDUwOEMxOS4zMzU5IDIwLjA5OTIgMTkuNTM4NSAxOS42MjIzIDE5LjUzODUgMTkuMTI1VjE0LjQzNzVDMTkuNTM4NSAxMy45NDAyIDE5LjMzNTkgMTMuNDYzMyAxOC45NzUyIDEzLjExMTdDMTguNjE0NiAxMi43NiAxOC4xMjU0IDEyLjU2MjUgMTcuNjE1NCAxMi41NjI1VjEyLjU2MjVaTTExLjEyNSA5LjUxNTYyQzExLjEyNSA4LjgzMTg2IDExLjQwMzYgOC4xNzYxMSAxMS44OTk1IDcuNjkyNjJDMTIuMzk1NCA3LjIwOTEyIDEzLjA2NzkgNi45Mzc1IDEzLjc2OTIgNi45Mzc1QzE0LjQ3MDUgNi45Mzc1IDE1LjE0MzEgNy4yMDkxMiAxNS42MzkgNy42OTI2MkMxNi4xMzQ5IDguMTc2MTEgMTYuNDEzNSA4LjgzMTg2IDE2LjQxMzUgOS41MTU2MlYxMi41NjI1SDExLjEyNVY5LjUxNTYyWk0xNC4yNSAxNy45NTMxQzE0LjI1IDE4LjA3NzQgMTQuMTk5MyAxOC4xOTY3IDE0LjEwOTIgMTguMjg0NkMxNC4wMTkgMTguMzcyNSAxMy44OTY3IDE4LjQyMTkgMTMuNzY5MiAxOC40MjE5QzEzLjY0MTcgMTguNDIxOSAxMy41MTk0IDE4LjM3MjUgMTMuNDI5MyAxOC4yODQ2QzEzLjMzOTEgMTguMTk2NyAxMy4yODg1IDE4LjA3NzQgMTMuMjg4NSAxNy45NTMxVjE1LjYwOTRDMTMuMjg4NSAxNS40ODUxIDEzLjMzOTEgMTUuMzY1OCAxMy40MjkzIDE1LjI3NzlDMTMuNTE5NCAxNS4xOSAxMy42NDE3IDE1LjE0MDYgMTMuNzY5MiAxNS4xNDA2QzEzLjg5NjcgMTUuMTQwNiAxNC4wMTkgMTUuMTkgMTQuMTA5MiAxNS4yNzc5QzE0LjE5OTMgMTUuMzY1OCAxNC4yNSAxNS40ODUxIDE0LjI1IDE1LjYwOTRWMTcuOTUzMVoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzZfMzkiIHgxPSItNy41NDY4NyIgeTE9Ii00LjM3NSIgeDI9IjI1LjU5MzciIHkyPSIyOC43NjU2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIG9mZnNldD0iMC4xMTAxMTMiIHN0b3AtY29sb3I9IiM1RERFRkIiLz4KPHN0b3Agb2Zmc2V0PSIwLjQ0MzU2OCIgc3RvcC1jb2xvcj0iIzQxOUJDQSIvPgo8c3RvcCBvZmZzZXQ9IjAuNjM2MTIyIiBzdG9wLWNvbG9yPSIjMDA4Q0Q1Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAyNUVBMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=");
73
  display: block;
74
  width: 20px;
75
  height: 20px;
78
  top: 15px;
79
  right: 15px;
80
  background-size: contain;
81
+ box-shadow: 0 0 3px 3px rgba(255, 255, 255, 0.8);
82
+ border-radius: 50%;
83
+ }
84
+ .dlm_protection.column-dlm_protection img {
85
+ width: 30px;
86
+ height: auto;
87
  }
assets/css/others.less CHANGED
@@ -85,9 +85,14 @@
85
  .thumbnail {
86
  box-shadow: 0 0 .5rem rgba(0,0,255,.45);
87
  }
 
 
 
 
88
  &:after{
89
  content:"";
90
- background:url( "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4IDE0QzI4IDYuMjY4MDEgMjEuNzMyIDAgMTQgMEM2LjI2ODAxIDAgMCA2LjI2ODAxIDAgMTRDMCAyMS43MzIgNi4yNjgwMSAyOCAxNCAyOEMyMS43MzIgMjggMjggMjEuNzMyIDI4IDE0WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzM2XzM5KSIvPgo8cGF0aCBkPSJNMTcuNjE1NCAxMi41NjI1SDE3LjM3NVY5LjUxNTYyQzE3LjM3NSA4LjU4MzIyIDE2Ljk5NTEgNy42ODkwMSAxNi4zMTg5IDcuMDI5N0MxNS42NDI3IDYuMzcwNCAxNC43MjU1IDYgMTMuNzY5MiA2QzEyLjgxMjkgNiAxMS44OTU4IDYuMzcwNCAxMS4yMTk2IDcuMDI5N0MxMC41NDM0IDcuNjg5MDEgMTAuMTYzNSA4LjU4MzIyIDEwLjE2MzUgOS41MTU2MlYxMi41NjI1SDkuOTIzMDhDOS40MTMwNSAxMi41NjI1IDguOTIzOSAxMi43NiA4LjU2MzI2IDEzLjExMTdDOC4yMDI2MSAxMy40NjMzIDggMTMuOTQwMiA4IDE0LjQzNzVWMTkuMTI1QzggMTkuNjIyMyA4LjIwMjYxIDIwLjA5OTIgOC41NjMyNiAyMC40NTA4QzguOTIzOSAyMC44MDI1IDkuNDEzMDUgMjEgOS45MjMwOCAyMUgxNy42MTU0QzE4LjEyNTQgMjEgMTguNjE0NiAyMC44MDI1IDE4Ljk3NTIgMjAuNDUwOEMxOS4zMzU5IDIwLjA5OTIgMTkuNTM4NSAxOS42MjIzIDE5LjUzODUgMTkuMTI1VjE0LjQzNzVDMTkuNTM4NSAxMy45NDAyIDE5LjMzNTkgMTMuNDYzMyAxOC45NzUyIDEzLjExMTdDMTguNjE0NiAxMi43NiAxOC4xMjU0IDEyLjU2MjUgMTcuNjE1NCAxMi41NjI1VjEyLjU2MjVaTTExLjEyNSA5LjUxNTYyQzExLjEyNSA4LjgzMTg2IDExLjQwMzYgOC4xNzYxMSAxMS44OTk1IDcuNjkyNjJDMTIuMzk1NCA3LjIwOTEyIDEzLjA2NzkgNi45Mzc1IDEzLjc2OTIgNi45Mzc1QzE0LjQ3MDUgNi45Mzc1IDE1LjE0MzEgNy4yMDkxMiAxNS42MzkgNy42OTI2MkMxNi4xMzQ5IDguMTc2MTEgMTYuNDEzNSA4LjgzMTg2IDE2LjQxMzUgOS41MTU2MlYxMi41NjI1SDExLjEyNVY5LjUxNTYyWk0xNC4yNSAxNy45NTMxQzE0LjI1IDE4LjA3NzQgMTQuMTk5MyAxOC4xOTY3IDE0LjEwOTIgMTguMjg0NkMxNC4wMTkgMTguMzcyNSAxMy44OTY3IDE4LjQyMTkgMTMuNzY5MiAxOC40MjE5QzEzLjY0MTcgMTguNDIxOSAxMy41MTk0IDE4LjM3MjUgMTMuNDI5MyAxOC4yODQ2QzEzLjMzOTEgMTguMTk2NyAxMy4yODg1IDE4LjA3NzQgMTMuMjg4NSAxNy45NTMxVjE1LjYwOTRDMTMuMjg4NSAxNS40ODUxIDEzLjMzOTEgMTUuMzY1OCAxMy40MjkzIDE1LjI3NzlDMTMuNTE5NCAxNS4xOSAxMy42NDE3IDE1LjE0MDYgMTMuNzY5MiAxNS4xNDA2QzEzLjg5NjcgMTUuMTQwNiAxNC4wMTkgMTUuMTkgMTQuMTA5MiAxNS4yNzc5QzE0LjE5OTMgMTUuMzY1OCAxNC4yNSAxNS40ODUxIDE0LjI1IDE1LjYwOTRWMTcuOTUzMVoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzZfMzkiIHgxPSItNy41NDY4NyIgeTE9Ii00LjM3NSIgeDI9IjI1LjU5MzciIHkyPSIyOC43NjU2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIG9mZnNldD0iMC4xMTAxMTMiIHN0b3AtY29sb3I9IiM1RERFRkIiLz4KPHN0b3Agb2Zmc2V0PSIwLjQ0MzU2OCIgc3RvcC1jb2xvcj0iIzQxOUJDQSIvPgo8c3RvcCBvZmZzZXQ9IjAuNjM2MTIyIiBzdG9wLWNvbG9yPSIjMDA4Q0Q1Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAyNUVBMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=" );
 
91
  display:block;
92
  width:20px;
93
  height:20px;
@@ -96,5 +101,14 @@
96
  top:15px;
97
  right:15px;
98
  background-size:contain;
 
 
 
 
 
 
 
 
 
99
  }
100
  }
85
  .thumbnail {
86
  box-shadow: 0 0 .5rem rgba(0,0,255,.45);
87
  }
88
+ }
89
+
90
+ .dlm-ml-file,
91
+ .dlm-ml-protected-file{
92
  &:after{
93
  content:"";
94
+ background-color:rgba(255,255,255,0.8);
95
+ background-image:url( "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4IDE0QzI4IDYuMjY4MDEgMjEuNzMyIDAgMTQgMEM2LjI2ODAxIDAgMCA2LjI2ODAxIDAgMTRDMCAyMS43MzIgNi4yNjgwMSAyOCAxNCAyOEMyMS43MzIgMjggMjggMjEuNzMyIDI4IDE0WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzM2XzM5KSIvPgo8cGF0aCBkPSJNMTcuNjE1NCAxMi41NjI1SDE3LjM3NVY5LjUxNTYyQzE3LjM3NSA4LjU4MzIyIDE2Ljk5NTEgNy42ODkwMSAxNi4zMTg5IDcuMDI5N0MxNS42NDI3IDYuMzcwNCAxNC43MjU1IDYgMTMuNzY5MiA2QzEyLjgxMjkgNiAxMS44OTU4IDYuMzcwNCAxMS4yMTk2IDcuMDI5N0MxMC41NDM0IDcuNjg5MDEgMTAuMTYzNSA4LjU4MzIyIDEwLjE2MzUgOS41MTU2MlYxMi41NjI1SDkuOTIzMDhDOS40MTMwNSAxMi41NjI1IDguOTIzOSAxMi43NiA4LjU2MzI2IDEzLjExMTdDOC4yMDI2MSAxMy40NjMzIDggMTMuOTQwMiA4IDE0LjQzNzVWMTkuMTI1QzggMTkuNjIyMyA4LjIwMjYxIDIwLjA5OTIgOC41NjMyNiAyMC40NTA4QzguOTIzOSAyMC44MDI1IDkuNDEzMDUgMjEgOS45MjMwOCAyMUgxNy42MTU0QzE4LjEyNTQgMjEgMTguNjE0NiAyMC44MDI1IDE4Ljk3NTIgMjAuNDUwOEMxOS4zMzU5IDIwLjA5OTIgMTkuNTM4NSAxOS42MjIzIDE5LjUzODUgMTkuMTI1VjE0LjQzNzVDMTkuNTM4NSAxMy45NDAyIDE5LjMzNTkgMTMuNDYzMyAxOC45NzUyIDEzLjExMTdDMTguNjE0NiAxMi43NiAxOC4xMjU0IDEyLjU2MjUgMTcuNjE1NCAxMi41NjI1VjEyLjU2MjVaTTExLjEyNSA5LjUxNTYyQzExLjEyNSA4LjgzMTg2IDExLjQwMzYgOC4xNzYxMSAxMS44OTk1IDcuNjkyNjJDMTIuMzk1NCA3LjIwOTEyIDEzLjA2NzkgNi45Mzc1IDEzLjc2OTIgNi45Mzc1QzE0LjQ3MDUgNi45Mzc1IDE1LjE0MzEgNy4yMDkxMiAxNS42MzkgNy42OTI2MkMxNi4xMzQ5IDguMTc2MTEgMTYuNDEzNSA4LjgzMTg2IDE2LjQxMzUgOS41MTU2MlYxMi41NjI1SDExLjEyNVY5LjUxNTYyWk0xNC4yNSAxNy45NTMxQzE0LjI1IDE4LjA3NzQgMTQuMTk5MyAxOC4xOTY3IDE0LjEwOTIgMTguMjg0NkMxNC4wMTkgMTguMzcyNSAxMy44OTY3IDE4LjQyMTkgMTMuNzY5MiAxOC40MjE5QzEzLjY0MTcgMTguNDIxOSAxMy41MTk0IDE4LjM3MjUgMTMuNDI5MyAxOC4yODQ2QzEzLjMzOTEgMTguMTk2NyAxMy4yODg1IDE4LjA3NzQgMTMuMjg4NSAxNy45NTMxVjE1LjYwOTRDMTMuMjg4NSAxNS40ODUxIDEzLjMzOTEgMTUuMzY1OCAxMy40MjkzIDE1LjI3NzlDMTMuNTE5NCAxNS4xOSAxMy42NDE3IDE1LjE0MDYgMTMuNzY5MiAxNS4xNDA2QzEzLjg5NjcgMTUuMTQwNiAxNC4wMTkgMTUuMTkgMTQuMTA5MiAxNS4yNzc5QzE0LjE5OTMgMTUuMzY1OCAxNC4yNSAxNS40ODUxIDE0LjI1IDE1LjYwOTRWMTcuOTUzMVoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzZfMzkiIHgxPSItNy41NDY4NyIgeTE9Ii00LjM3NSIgeDI9IjI1LjU5MzciIHkyPSIyOC43NjU2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIG9mZnNldD0iMC4xMTAxMTMiIHN0b3AtY29sb3I9IiM1RERFRkIiLz4KPHN0b3Agb2Zmc2V0PSIwLjQ0MzU2OCIgc3RvcC1jb2xvcj0iIzQxOUJDQSIvPgo8c3RvcCBvZmZzZXQ9IjAuNjM2MTIyIiBzdG9wLWNvbG9yPSIjMDA4Q0Q1Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAyNUVBMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=" );
96
  display:block;
97
  width:20px;
98
  height:20px;
101
  top:15px;
102
  right:15px;
103
  background-size:contain;
104
+ box-shadow: 0 0 3px 3px rgba(255,255,255,0.8);
105
+ border-radius: 50%;
106
+ }
107
+ }
108
+
109
+ .dlm_protection.column-dlm_protection {
110
+ img {
111
+ width:30px;
112
+ height: auto;
113
  }
114
  }
assets/css/others.min.css CHANGED
@@ -1 +1 @@
1
- #adminmenu #menu-posts-dlm_download ul.wp-submenu li>a{padding:7px 12px}#adminmenu #menu-posts-dlm_download ul.wp-submenu li a[href$=dlm-lite-vs-pro]{color:gold}#adminmenu #menu-posts-dlm_download ul.wp-submenu li a[href$="edit-tags.php?taxonomy=dlm_download_tag&post_type=dlm_download"],#adminmenu #menu-posts-dlm_download ul.wp-submenu li a[href$="edit.php?post_type=dlm_download&page=download-monitor-reports"],#adminmenu #menu-posts-dlm_download ul.wp-submenu li a[href$="edit.php?post_type=dlm_download&page=download-monitor-settings"]{border-bottom:1px solid hsla(0,0%,100%,.2)}.dlm-lu-upgrade-notice{position:relative;padding:1em;margin:3em 1em 1em 0;color:#fff;background:#419ccb;box-shadow:2px 2px 1px grey}.dlm-lu-upgrade-notice a,.dlm-lu-upgrade-notice h3{color:#fff}.dlm-lu-upgrade-notice h3{margin-top:0}.dlm-lu-upgrade-notice p{font-size:1.05em}.dlm-lu-upgrade-notice p a{font-weight:700}.dlm-lu-upgrade-notice a.dlm-lu-upgrade-notice-hide{position:absolute;top:10px;right:10px;text-decoration:none;font-size:.95em}.dlm-onboarding-notice{border-left-color:#419ccb}.dlm-onboarding-notice:before{display:inline-block;position:absolute;top:0;left:0;width:35px;height:100%;content:"";background-color:#419ccb;background-image:url('../images/logo.png');background-size:29px 28px;background-position:1px center;background-repeat:no-repeat}.dlm-onboarding-notice p{padding-left:33px}.dlm-ml-protected-file .thumbnail{box-shadow:0 0 .5rem rgba(0,0,255,.45)}.dlm-ml-protected-file:after{content:"";background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4IDE0QzI4IDYuMjY4MDEgMjEuNzMyIDAgMTQgMEM2LjI2ODAxIDAgMCA2LjI2ODAxIDAgMTRDMCAyMS43MzIgNi4yNjgwMSAyOCAxNCAyOEMyMS43MzIgMjggMjggMjEuNzMyIDI4IDE0WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzM2XzM5KSIvPgo8cGF0aCBkPSJNMTcuNjE1NCAxMi41NjI1SDE3LjM3NVY5LjUxNTYyQzE3LjM3NSA4LjU4MzIyIDE2Ljk5NTEgNy42ODkwMSAxNi4zMTg5IDcuMDI5N0MxNS42NDI3IDYuMzcwNCAxNC43MjU1IDYgMTMuNzY5MiA2QzEyLjgxMjkgNiAxMS44OTU4IDYuMzcwNCAxMS4yMTk2IDcuMDI5N0MxMC41NDM0IDcuNjg5MDEgMTAuMTYzNSA4LjU4MzIyIDEwLjE2MzUgOS41MTU2MlYxMi41NjI1SDkuOTIzMDhDOS40MTMwNSAxMi41NjI1IDguOTIzOSAxMi43NiA4LjU2MzI2IDEzLjExMTdDOC4yMDI2MSAxMy40NjMzIDggMTMuOTQwMiA4IDE0LjQzNzVWMTkuMTI1QzggMTkuNjIyMyA4LjIwMjYxIDIwLjA5OTIgOC41NjMyNiAyMC40NTA4QzguOTIzOSAyMC44MDI1IDkuNDEzMDUgMjEgOS45MjMwOCAyMUgxNy42MTU0QzE4LjEyNTQgMjEgMTguNjE0NiAyMC44MDI1IDE4Ljk3NTIgMjAuNDUwOEMxOS4zMzU5IDIwLjA5OTIgMTkuNTM4NSAxOS42MjIzIDE5LjUzODUgMTkuMTI1VjE0LjQzNzVDMTkuNTM4NSAxMy45NDAyIDE5LjMzNTkgMTMuNDYzMyAxOC45NzUyIDEzLjExMTdDMTguNjE0NiAxMi43NiAxOC4xMjU0IDEyLjU2MjUgMTcuNjE1NCAxMi41NjI1VjEyLjU2MjVaTTExLjEyNSA5LjUxNTYyQzExLjEyNSA4LjgzMTg2IDExLjQwMzYgOC4xNzYxMSAxMS44OTk1IDcuNjkyNjJDMTIuMzk1NCA3LjIwOTEyIDEzLjA2NzkgNi45Mzc1IDEzLjc2OTIgNi45Mzc1QzE0LjQ3MDUgNi45Mzc1IDE1LjE0MzEgNy4yMDkxMiAxNS42MzkgNy42OTI2MkMxNi4xMzQ5IDguMTc2MTEgMTYuNDEzNSA4LjgzMTg2IDE2LjQxMzUgOS41MTU2MlYxMi41NjI1SDExLjEyNVY5LjUxNTYyWk0xNC4yNSAxNy45NTMxQzE0LjI1IDE4LjA3NzQgMTQuMTk5MyAxOC4xOTY3IDE0LjEwOTIgMTguMjg0NkMxNC4wMTkgMTguMzcyNSAxMy44OTY3IDE4LjQyMTkgMTMuNzY5MiAxOC40MjE5QzEzLjY0MTcgMTguNDIxOSAxMy41MTk0IDE4LjM3MjUgMTMuNDI5MyAxOC4yODQ2QzEzLjMzOTEgMTguMTk2NyAxMy4yODg1IDE4LjA3NzQgMTMuMjg4NSAxNy45NTMxVjE1LjYwOTRDMTMuMjg4NSAxNS40ODUxIDEzLjMzOTEgMTUuMzY1OCAxMy40MjkzIDE1LjI3NzlDMTMuNTE5NCAxNS4xOSAxMy42NDE3IDE1LjE0MDYgMTMuNzY5MiAxNS4xNDA2QzEzLjg5NjcgMTUuMTQwNiAxNC4wMTkgMTUuMTkgMTQuMTA5MiAxNS4yNzc5QzE0LjE5OTMgMTUuMzY1OCAxNC4yNSAxNS40ODUxIDE0LjI1IDE1LjYwOTRWMTcuOTUzMVoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzZfMzkiIHgxPSItNy41NDY4NyIgeTE9Ii00LjM3NSIgeDI9IjI1LjU5MzciIHkyPSIyOC43NjU2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIG9mZnNldD0iMC4xMTAxMTMiIHN0b3AtY29sb3I9IiM1RERFRkIiLz4KPHN0b3Agb2Zmc2V0PSIwLjQ0MzU2OCIgc3RvcC1jb2xvcj0iIzQxOUJDQSIvPgo8c3RvcCBvZmZzZXQ9IjAuNjM2MTIyIiBzdG9wLWNvbG9yPSIjMDA4Q0Q1Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAyNUVBMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=");display:block;width:20px;height:20px;z-index:999;position:absolute;top:15px;right:15px;background-size:contain}
1
+ #adminmenu #menu-posts-dlm_download ul.wp-submenu li>a{padding:7px 12px}#adminmenu #menu-posts-dlm_download ul.wp-submenu li a[href$=dlm-lite-vs-pro]{color:gold}#adminmenu #menu-posts-dlm_download ul.wp-submenu li a[href$="edit-tags.php?taxonomy=dlm_download_tag&post_type=dlm_download"],#adminmenu #menu-posts-dlm_download ul.wp-submenu li a[href$="edit.php?post_type=dlm_download&page=download-monitor-reports"],#adminmenu #menu-posts-dlm_download ul.wp-submenu li a[href$="edit.php?post_type=dlm_download&page=download-monitor-settings"]{border-bottom:1px solid hsla(0,0%,100%,.2)}.dlm-lu-upgrade-notice{position:relative;padding:1em;margin:3em 1em 1em 0;color:#fff;background:#419ccb;box-shadow:2px 2px 1px grey}.dlm-lu-upgrade-notice a,.dlm-lu-upgrade-notice h3{color:#fff}.dlm-lu-upgrade-notice h3{margin-top:0}.dlm-lu-upgrade-notice p{font-size:1.05em}.dlm-lu-upgrade-notice p a{font-weight:700}.dlm-lu-upgrade-notice a.dlm-lu-upgrade-notice-hide{position:absolute;top:10px;right:10px;text-decoration:none;font-size:.95em}.dlm-onboarding-notice{border-left-color:#419ccb}.dlm-onboarding-notice:before{display:inline-block;position:absolute;top:0;left:0;width:35px;height:100%;content:"";background-color:#419ccb;background-image:url('../images/logo.png');background-size:29px 28px;background-position:1px center;background-repeat:no-repeat}.dlm-onboarding-notice p{padding-left:33px}.dlm-ml-protected-file .thumbnail{box-shadow:0 0 .5rem rgba(0,0,255,.45)}.dlm-ml-file:after,.dlm-ml-protected-file:after{content:"";background-color:rgba(255,255,255,.8);background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4IDE0QzI4IDYuMjY4MDEgMjEuNzMyIDAgMTQgMEM2LjI2ODAxIDAgMCA2LjI2ODAxIDAgMTRDMCAyMS43MzIgNi4yNjgwMSAyOCAxNCAyOEMyMS43MzIgMjggMjggMjEuNzMyIDI4IDE0WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzM2XzM5KSIvPgo8cGF0aCBkPSJNMTcuNjE1NCAxMi41NjI1SDE3LjM3NVY5LjUxNTYyQzE3LjM3NSA4LjU4MzIyIDE2Ljk5NTEgNy42ODkwMSAxNi4zMTg5IDcuMDI5N0MxNS42NDI3IDYuMzcwNCAxNC43MjU1IDYgMTMuNzY5MiA2QzEyLjgxMjkgNiAxMS44OTU4IDYuMzcwNCAxMS4yMTk2IDcuMDI5N0MxMC41NDM0IDcuNjg5MDEgMTAuMTYzNSA4LjU4MzIyIDEwLjE2MzUgOS41MTU2MlYxMi41NjI1SDkuOTIzMDhDOS40MTMwNSAxMi41NjI1IDguOTIzOSAxMi43NiA4LjU2MzI2IDEzLjExMTdDOC4yMDI2MSAxMy40NjMzIDggMTMuOTQwMiA4IDE0LjQzNzVWMTkuMTI1QzggMTkuNjIyMyA4LjIwMjYxIDIwLjA5OTIgOC41NjMyNiAyMC40NTA4QzguOTIzOSAyMC44MDI1IDkuNDEzMDUgMjEgOS45MjMwOCAyMUgxNy42MTU0QzE4LjEyNTQgMjEgMTguNjE0NiAyMC44MDI1IDE4Ljk3NTIgMjAuNDUwOEMxOS4zMzU5IDIwLjA5OTIgMTkuNTM4NSAxOS42MjIzIDE5LjUzODUgMTkuMTI1VjE0LjQzNzVDMTkuNTM4NSAxMy45NDAyIDE5LjMzNTkgMTMuNDYzMyAxOC45NzUyIDEzLjExMTdDMTguNjE0NiAxMi43NiAxOC4xMjU0IDEyLjU2MjUgMTcuNjE1NCAxMi41NjI1VjEyLjU2MjVaTTExLjEyNSA5LjUxNTYyQzExLjEyNSA4LjgzMTg2IDExLjQwMzYgOC4xNzYxMSAxMS44OTk1IDcuNjkyNjJDMTIuMzk1NCA3LjIwOTEyIDEzLjA2NzkgNi45Mzc1IDEzLjc2OTIgNi45Mzc1QzE0LjQ3MDUgNi45Mzc1IDE1LjE0MzEgNy4yMDkxMiAxNS42MzkgNy42OTI2MkMxNi4xMzQ5IDguMTc2MTEgMTYuNDEzNSA4LjgzMTg2IDE2LjQxMzUgOS41MTU2MlYxMi41NjI1SDExLjEyNVY5LjUxNTYyWk0xNC4yNSAxNy45NTMxQzE0LjI1IDE4LjA3NzQgMTQuMTk5MyAxOC4xOTY3IDE0LjEwOTIgMTguMjg0NkMxNC4wMTkgMTguMzcyNSAxMy44OTY3IDE4LjQyMTkgMTMuNzY5MiAxOC40MjE5QzEzLjY0MTcgMTguNDIxOSAxMy41MTk0IDE4LjM3MjUgMTMuNDI5MyAxOC4yODQ2QzEzLjMzOTEgMTguMTk2NyAxMy4yODg1IDE4LjA3NzQgMTMuMjg4NSAxNy45NTMxVjE1LjYwOTRDMTMuMjg4NSAxNS40ODUxIDEzLjMzOTEgMTUuMzY1OCAxMy40MjkzIDE1LjI3NzlDMTMuNTE5NCAxNS4xOSAxMy42NDE3IDE1LjE0MDYgMTMuNzY5MiAxNS4xNDA2QzEzLjg5NjcgMTUuMTQwNiAxNC4wMTkgMTUuMTkgMTQuMTA5MiAxNS4yNzc5QzE0LjE5OTMgMTUuMzY1OCAxNC4yNSAxNS40ODUxIDE0LjI1IDE1LjYwOTRWMTcuOTUzMVoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzZfMzkiIHgxPSItNy41NDY4NyIgeTE9Ii00LjM3NSIgeDI9IjI1LjU5MzciIHkyPSIyOC43NjU2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIG9mZnNldD0iMC4xMTAxMTMiIHN0b3AtY29sb3I9IiM1RERFRkIiLz4KPHN0b3Agb2Zmc2V0PSIwLjQ0MzU2OCIgc3RvcC1jb2xvcj0iIzQxOUJDQSIvPgo8c3RvcCBvZmZzZXQ9IjAuNjM2MTIyIiBzdG9wLWNvbG9yPSIjMDA4Q0Q1Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAyNUVBMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=");display:block;width:20px;height:20px;z-index:999;position:absolute;top:15px;right:15px;background-size:contain;box-shadow:0 0 3px 3px rgba(255,255,255,.8);border-radius:50%}.dlm_protection.column-dlm_protection img{width:30px;height:auto}
assets/js/dlm-xhr.js CHANGED
@@ -117,41 +117,63 @@ class DLM_XHR_Download {
117
  return result;
118
  }, {});
119
 
120
- if ('undefined' !== typeof responseHeaders['dlm-no-waypoints']) {
121
- request.abort();
122
- window.location.href = href;
123
- }
124
 
125
- if ('undefined' !== typeof responseHeaders['dlm-external-download']) {
126
- request.abort();
127
- let file_name = responseHeaders['dlm-file-name'].replace(/\"/g, '').replace(';', '');
128
- dlmXHRinstance.dlmExternalDownload(responseHeaders, button, buttonObj, file_name, href);
129
- return;
130
- }
131
 
132
- if (request.readyState == 2 && 'undefined' !== typeof responseHeaders['dlm-error'] && '' !== responseHeaders['dlm-error'] && null !== responseHeaders['dlm-error']) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
133
 
134
- dlmXHRinstance.dlmLogDownload(responseHeaders, 'failed', false);
135
- button.removeAttribute('download');
136
- button.setAttribute('href', href);
137
- buttonObj.removeClass().addClass(buttonClass).find('span.dlm-xhr-progress').remove();
138
- request.abort();
139
- buttonObj.append('<span class="dlm-xhr-error">' + responseHeaders['dlm-error'] + '</span>');
140
- return;
141
- }
142
 
143
- if (request.readyState == 2 && 'undefined' !== typeof responseHeaders['dlm-redirect'] && '' !== responseHeaders['dlm-redirect'] && null !== responseHeaders['dlm-redirect']) {
144
- dlmXHRinstance.dlmLogDownload(responseHeaders, 'redirected', false, responseHeaders['dlm-redirect'], responseHeaders['dlm-no-access'], buttonTarget);
145
- button.removeAttribute('download');
146
- button.setAttribute('href', href);
147
- buttonObj.removeClass().addClass(buttonClass).find('span.dlm-xhr-progress').remove();
148
- request.abort();
149
- return;
150
- }
151
 
152
- if (request.readyState == 2 && request.status == 200) {
153
- // Download is being started
154
- //button.parent().append('<span>Download started</span>');
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
155
  }
156
 
157
  if (status == 404 && readyState == 2) {
@@ -302,6 +324,7 @@ class DLM_XHR_Download {
302
  return result;
303
  }, {});
304
 
 
305
  if (403 === status) {
306
  dlmXHRinstance.dlmLogDownload(responseHeaders, 'failed', false);
307
  request.abort();
117
  return result;
118
  }, {});
119
 
120
+ // Let's check for DLM request headers
121
+ if (request.readyState === 2) {
 
 
122
 
123
+ // If the dlm-no-waypoints header is set we need to redirect.
124
+ if ('undefined' !== typeof responseHeaders['dlm-no-waypoints']) {
125
+ request.abort();
126
+ window.location.href = href;
127
+ }
 
128
 
129
+ // If it's an external link we need to redirect.
130
+ if ('undefined' !== typeof responseHeaders['dlm-external-download']) {
131
+ request.abort();
132
+ let file_name = '';
133
+ if ('undefined' !== typeof responseHeaders['dlm-file-name']) {
134
+ file_name = responseHeaders['dlm-file-name'].replace(/\"/g, '').replace(';', '');
135
+ file_name = decodeURI(file_name);
136
+ } else if( 'undefined' !== typeof responseHeaders['content-disposition'] ) {
137
+ file_name = responseHeaders['content-disposition'].split('filename=')[1];
138
+ file_name = file_name.replace(/\"/g, '').replace(';', '');
139
+ // We use this method because we urlencoded it on the server so that characters like chinese or persian are not broken
140
+ file_name = decodeURI(file_name);
141
+ }
142
+
143
+ dlmXHRinstance.dlmExternalDownload(responseHeaders, button, buttonObj, file_name, href);
144
+ return;
145
+ }
146
 
147
+ // If there are no specific DLM headers then we need to abort and redirect.
148
+ const responseDLM = Object.keys(responseHeaders).filter((element) => {
149
+ return element.indexOf('dlm-') !== -1;
150
+ }).length;
 
 
 
 
151
 
152
+ if (0 === responseDLM) {
153
+ request.abort();
154
+ window.location.href = href;
155
+ }
 
 
 
 
156
 
157
+ // If there is a dlm-error headers means we have an error. Display the error and abort.
158
+ if ('undefined' !== typeof responseHeaders['dlm-error'] && '' !== responseHeaders['dlm-error'] && null !== responseHeaders['dlm-error']) {
159
+ dlmXHRinstance.dlmLogDownload(responseHeaders, 'failed', false);
160
+ button.removeAttribute('download');
161
+ button.setAttribute('href', href);
162
+ buttonObj.removeClass().addClass(buttonClass).find('span.dlm-xhr-progress').remove();
163
+ request.abort();
164
+ buttonObj.append('<span class="dlm-xhr-error">' + responseHeaders['dlm-error'] + '</span>');
165
+ return;
166
+ }
167
+
168
+ // If we have a dlm-redirect header means this is a redirect. Let's do that.
169
+ if ('undefined' !== typeof responseHeaders['dlm-redirect'] && '' !== responseHeaders['dlm-redirect'] && null !== responseHeaders['dlm-redirect']) {
170
+ dlmXHRinstance.dlmLogDownload(responseHeaders, 'redirected', false, responseHeaders['dlm-redirect'], responseHeaders['dlm-no-access'], buttonTarget);
171
+ button.removeAttribute('download');
172
+ button.setAttribute('href', href);
173
+ buttonObj.removeClass().addClass(buttonClass).find('span.dlm-xhr-progress').remove();
174
+ request.abort();
175
+ return;
176
+ }
177
  }
178
 
179
  if (status == 404 && readyState == 2) {
324
  return result;
325
  }, {});
326
 
327
+
328
  if (403 === status) {
329
  dlmXHRinstance.dlmLogDownload(responseHeaders, 'failed', false);
330
  request.abort();
assets/js/dlm-xhr.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(e){new DLM_XHR_Download});class DLM_XHR_Download{constructor(){(dlmXHRinstance=this).init()}init(){dlmXHRinstance.attachButtonEvent()}attachButtonEvent(){let d="",r="";jQuery.each(dlmXHR.xhr_links.class,function(e,t){-1<t.indexOf("[class")||-1<t.indexOf("[id")?d+=r+" "+t:d+=r+" ."+t,r=","}),jQuery("html, body").on("click",d,function(e){return!!jQuery(this).hasClass("dlm-no-xhr-download")||(0<=jQuery(this).attr("href").indexOf("?add-to-cart")||void dlmXHRinstance.handleDownloadClick(this,e))})}handleDownloadClick(e,t){t.stopPropagation();var d=e.getAttribute("href");let r={button:e,href:d,buttonObj:jQuery(e)};-1===r.href.indexOf("blob:http")&&"#"!==r.href&&(t.preventDefault(),dlmXHRinstance.retrieveBlob(r))}retrieveBlob(e){let{button:n,href:l,buttonObj:a}=e,s;const i=new XMLHttpRequest,m=dlmXHR.prevent_duplicates,c=a.attr("target");let u=a.attr("class");u=void 0!==u&&""!==u?u.replace("dlm-download-started","").replace("dlm-download-completed",""):"",a.addClass("dlm-download-started"),n.setAttribute("href","#"),n.removeAttribute("download"),n.setAttribute("disabled","disabled");e=0<l.indexOf("?")?l+"&nonce="+dlmXHR.nonce:l+"?nonce="+dlmXHR.nonce;jQuery(document).trigger("dlm_download_triggered",[this,n,a,s]),i.responseType="blob",i.onreadystatechange=function(){var{status:e,readyState:t,statusText:d}=i;let r=i.getAllResponseHeaders().split("\r\n").reduce((e,t)=>{var[t,d]=t.split(": ");return e[t]=d,e},{});if(void 0!==r["dlm-no-waypoints"]&&(i.abort(),window.location.href=l),void 0!==r["dlm-external-download"])return i.abort(),o=r["dlm-file-name"].replace(/\"/g,"").replace(";",""),void dlmXHRinstance.dlmExternalDownload(r,n,a,o,l);if(2==i.readyState&&void 0!==r["dlm-error"]&&""!==r["dlm-error"]&&null!==r["dlm-error"])return dlmXHRinstance.dlmLogDownload(r,"failed",!1),n.removeAttribute("download"),n.setAttribute("href",l),a.removeClass().addClass(u).find("span.dlm-xhr-progress").remove(),i.abort(),void a.append('<span class="dlm-xhr-error">'+r["dlm-error"]+"</span>");if(2==i.readyState&&void 0!==r["dlm-redirect"]&&""!==r["dlm-redirect"]&&null!==r["dlm-redirect"])return dlmXHRinstance.dlmLogDownload(r,"redirected",!1,r["dlm-redirect"],r["dlm-no-access"],c),n.removeAttribute("download"),n.setAttribute("href",l),a.removeClass().addClass(u).find("span.dlm-xhr-progress").remove(),void i.abort();if(2==i.readyState&&i.status,404==e&&2==t){let e=document.createElement("p");e.innerHTML=d,n.parentNode.appendChild(e)}if(401==e&&2==t&&(window.location.href=d),403==e&&2==t){let e=document.createElement("p");e.innerHTML=d,n.parentNode.appendChild(e)}if(200==e&&4==t){var o=i.response;let e=r["content-disposition"].split("filename=")[1];e=e.replace(/\"/g,"").replace(";",""),e=decodeURI(e),s=URL.createObjectURL(o),n.removeEventListener("click",dlmXHRinstance.handleDownloadClick),n.setAttribute("download",""+e),n.setAttribute("href",s),n.click(),a.removeClass().addClass(u+" dlm-download-complete"),dlmXHRinstance.attachButtonEvent(),jQuery(document).trigger("dlm_download_complete",[this,n,a,s]),dlmXHRinstance.dlmLogDownload(r,"completed",m),window.URL.revokeObjectURL(s),n.removeAttribute("download"),n.setAttribute("href",l),setTimeout(function(){a.removeClass().addClass(u).find("span.dlm-xhr-progress").remove()},4e3)}},i.addEventListener("progress",function(e){let t=e.loaded/e.total*100;t=t.toFixed(2);var d;a.find("span.dlm-xhr-progress").remove(),d="dlm-download-started download-"+10*Math.ceil(t/10),1/0!=t&&a.append('<span class="dlm-xhr-progress">&nbsp;'+t+"%</span>"),a.removeClass().addClass(u+" "+d),jQuery(document).trigger("dlm_download_progress",[this,n,a,s,e,t])}),i.onerror=function(){n.removeAttribute("download"),n.setAttribute("href",l),a.removeClass().addClass(u+" dlm-no-xhr-download").find("span.dlm-xhr-progress").remove(),a.append('<span class="dlm-xhr-error">'+dlmXHRtranslations.error+"</span>"),console.log("** An error occurred during the transaction")},i.open("GET",e,!0),i.setRequestHeader("dlm-xhr-request","dlm_XMLHttpRequest"),i.send()}dlmLogDownload(e,t,d,r=null,o=null,n="_self"){null!==o?window.location.href=r:(o=window.location.href,t={download_id:e["dlm-download-id"],version_id:e["dlm-version-id"],status:t,cookie:d,currentURL:o,action:"log_dlm_xhr_download",responseHeaders:e,nonce:dlmXHR.nonce},jQuery.post(dlmXHR.ajaxUrl,t,function(e){null!==r&&(null==n&&(n="_self"),window.open(r,n))}))}dlmExternalDownload(e,r,o,n,l){const a=new XMLHttpRequest,t=e["dlm-external-download"];o.attr("target");let s=o.attr("class"),i;s=void 0!==s&&""!==s?s.replace("dlm-download-started","").replace("dlm-download-completed",""):"",o.addClass("dlm-download-started"),r.setAttribute("href","#"),r.removeAttribute("download"),r.setAttribute("disabled","disabled"),jQuery(document).trigger("dlm_download_triggered",[this,r,o,i]),a.responseType="blob",a.onreadystatechange=function(){var{status:e,readyState:t}=a,d=a.getAllResponseHeaders().split("\r\n").reduce((e,t)=>{var[t,d]=t.split(": ");return e[t]=d,e},{});if(403===e)return dlmXHRinstance.dlmLogDownload(d,"failed",!1),a.abort(),void o.append('<span class="dlm-xhr-error">Acces Denied to file.</span>');200==e&&4==t&&(e=a.response,i=URL.createObjectURL(e),r.removeEventListener("click",dlmXHRinstance.handleDownloadClick),r.setAttribute("download",""+n),r.setAttribute("href",i),r.click(),o.removeClass().addClass(s+" dlm-download-complete"),dlmXHRinstance.attachButtonEvent(),jQuery(document).trigger("dlm_download_complete",[this,r,o,i]),dlmXHRinstance.dlmLogDownload(d,"completed",!1),window.URL.revokeObjectURL(i),r.removeAttribute("download"),r.setAttribute("href",l),setTimeout(function(){o.removeClass().addClass(s).find("span.dlm-xhr-progress").remove()},1e3))},a.addEventListener("progress",function(e){let t=e.loaded/e.total*100;t=t.toFixed(2);var d;o.find("span.dlm-xhr-progress").remove(),d="dlm-download-started download-"+10*Math.ceil(t/10),1/0!=t&&o.append('<span class="dlm-xhr-progress">&nbsp;'+t+"%</span>"),o.removeClass().addClass(s+" "+d),jQuery(document).trigger("dlm_download_progress",[this,r,o,i,e,t])}),a.onerror=function(){r.removeAttribute("download"),r.setAttribute("href",l),o.removeClass().addClass(s+" .dlm-no-xhr-download").find("span.dlm-xhr-progress").remove(),o.append('<span class="dlm-xhr-error">'+dlmXHRtranslations.error+"</span>"),console.log("** An error occurred during the transaction")},a.open("GET",t,!0),a.setRequestHeader("dlm-xhr-request","dlm_XMLHttpRequest"),a.send()}}
1
+ jQuery(function(e){new DLM_XHR_Download});class DLM_XHR_Download{constructor(){(dlmXHRinstance=this).init()}init(){dlmXHRinstance.attachButtonEvent()}attachButtonEvent(){let d="",o="";jQuery.each(dlmXHR.xhr_links.class,function(e,t){-1<t.indexOf("[class")||-1<t.indexOf("[id")?d+=o+" "+t:d+=o+" ."+t,o=","}),jQuery("html, body").on("click",d,function(e){return!!jQuery(this).hasClass("dlm-no-xhr-download")||(0<=jQuery(this).attr("href").indexOf("?add-to-cart")||void dlmXHRinstance.handleDownloadClick(this,e))})}handleDownloadClick(e,t){t.stopPropagation();var d=e.getAttribute("href");let o={button:e,href:d,buttonObj:jQuery(e)};-1===o.href.indexOf("blob:http")&&"#"!==o.href&&(t.preventDefault(),dlmXHRinstance.retrieveBlob(o))}retrieveBlob(e){let{button:r,href:n,buttonObj:l}=e,a;const s=new XMLHttpRequest,i=dlmXHR.prevent_duplicates,c=l.attr("target");let m=l.attr("class");m=void 0!==m&&""!==m?m.replace("dlm-download-started","").replace("dlm-download-completed",""):"",l.addClass("dlm-download-started"),r.setAttribute("href","#"),r.removeAttribute("download"),r.setAttribute("disabled","disabled");e=0<n.indexOf("?")?n+"&nonce="+dlmXHR.nonce:n+"?nonce="+dlmXHR.nonce;jQuery(document).trigger("dlm_download_triggered",[this,r,l,a]),s.responseType="blob",s.onreadystatechange=function(){var{status:e,readyState:t,statusText:d}=s;let o=s.getAllResponseHeaders().split("\r\n").reduce((e,t)=>{var[t,d]=t.split(": ");return e[t]=d,e},{});if(2===s.readyState){if(void 0!==o["dlm-no-waypoints"]&&(s.abort(),window.location.href=n),void 0!==o["dlm-external-download"]){s.abort();let e="";return void 0!==o["dlm-file-name"]?(e=o["dlm-file-name"].replace(/\"/g,"").replace(";",""),e=decodeURI(e)):void 0!==o["content-disposition"]&&(e=(e=o["content-disposition"].split("filename=")[1]).replace(/\"/g,"").replace(";",""),e=decodeURI(e)),void dlmXHRinstance.dlmExternalDownload(o,r,l,e,n)}if(0===Object.keys(o).filter(e=>-1!==e.indexOf("dlm-")).length&&(s.abort(),window.location.href=n),void 0!==o["dlm-error"]&&""!==o["dlm-error"]&&null!==o["dlm-error"])return dlmXHRinstance.dlmLogDownload(o,"failed",!1),r.removeAttribute("download"),r.setAttribute("href",n),l.removeClass().addClass(m).find("span.dlm-xhr-progress").remove(),s.abort(),void l.append('<span class="dlm-xhr-error">'+o["dlm-error"]+"</span>");if(void 0!==o["dlm-redirect"]&&""!==o["dlm-redirect"]&&null!==o["dlm-redirect"])return dlmXHRinstance.dlmLogDownload(o,"redirected",!1,o["dlm-redirect"],o["dlm-no-access"],c),r.removeAttribute("download"),r.setAttribute("href",n),l.removeClass().addClass(m).find("span.dlm-xhr-progress").remove(),void s.abort()}if(404==e&&2==t){let e=document.createElement("p");e.innerHTML=d,r.parentNode.appendChild(e)}if(401==e&&2==t&&(window.location.href=d),403==e&&2==t){let e=document.createElement("p");e.innerHTML=d,r.parentNode.appendChild(e)}if(200==e&&4==t){d=s.response;let e=o["content-disposition"].split("filename=")[1];e=e.replace(/\"/g,"").replace(";",""),e=decodeURI(e),a=URL.createObjectURL(d),r.removeEventListener("click",dlmXHRinstance.handleDownloadClick),r.setAttribute("download",""+e),r.setAttribute("href",a),r.click(),l.removeClass().addClass(m+" dlm-download-complete"),dlmXHRinstance.attachButtonEvent(),jQuery(document).trigger("dlm_download_complete",[this,r,l,a]),dlmXHRinstance.dlmLogDownload(o,"completed",i),window.URL.revokeObjectURL(a),r.removeAttribute("download"),r.setAttribute("href",n),setTimeout(function(){l.removeClass().addClass(m).find("span.dlm-xhr-progress").remove()},4e3)}},s.addEventListener("progress",function(e){let t=e.loaded/e.total*100;t=t.toFixed(2);var d;l.find("span.dlm-xhr-progress").remove(),d="dlm-download-started download-"+10*Math.ceil(t/10),1/0!=t&&l.append('<span class="dlm-xhr-progress">&nbsp;'+t+"%</span>"),l.removeClass().addClass(m+" "+d),jQuery(document).trigger("dlm_download_progress",[this,r,l,a,e,t])}),s.onerror=function(){r.removeAttribute("download"),r.setAttribute("href",n),l.removeClass().addClass(m+" dlm-no-xhr-download").find("span.dlm-xhr-progress").remove(),l.append('<span class="dlm-xhr-error">'+dlmXHRtranslations.error+"</span>"),console.log("** An error occurred during the transaction")},s.open("GET",e,!0),s.setRequestHeader("dlm-xhr-request","dlm_XMLHttpRequest"),s.send()}dlmLogDownload(e,t,d,o=null,r=null,n="_self"){null!==r?window.location.href=o:(r=window.location.href,t={download_id:e["dlm-download-id"],version_id:e["dlm-version-id"],status:t,cookie:d,currentURL:r,action:"log_dlm_xhr_download",responseHeaders:e,nonce:dlmXHR.nonce},jQuery.post(dlmXHR.ajaxUrl,t,function(e){null!==o&&(null==n&&(n="_self"),window.open(o,n))}))}dlmExternalDownload(e,o,r,n,l){const a=new XMLHttpRequest,t=e["dlm-external-download"];r.attr("target");let s=r.attr("class"),i;s=void 0!==s&&""!==s?s.replace("dlm-download-started","").replace("dlm-download-completed",""):"",r.addClass("dlm-download-started"),o.setAttribute("href","#"),o.removeAttribute("download"),o.setAttribute("disabled","disabled"),jQuery(document).trigger("dlm_download_triggered",[this,o,r,i]),a.responseType="blob",a.onreadystatechange=function(){var{status:e,readyState:t}=a,d=a.getAllResponseHeaders().split("\r\n").reduce((e,t)=>{var[t,d]=t.split(": ");return e[t]=d,e},{});if(403===e)return dlmXHRinstance.dlmLogDownload(d,"failed",!1),a.abort(),void r.append('<span class="dlm-xhr-error">Acces Denied to file.</span>');200==e&&4==t&&(e=a.response,i=URL.createObjectURL(e),o.removeEventListener("click",dlmXHRinstance.handleDownloadClick),o.setAttribute("download",""+n),o.setAttribute("href",i),o.click(),r.removeClass().addClass(s+" dlm-download-complete"),dlmXHRinstance.attachButtonEvent(),jQuery(document).trigger("dlm_download_complete",[this,o,r,i]),dlmXHRinstance.dlmLogDownload(d,"completed",!1),window.URL.revokeObjectURL(i),o.removeAttribute("download"),o.setAttribute("href",l),setTimeout(function(){r.removeClass().addClass(s).find("span.dlm-xhr-progress").remove()},1e3))},a.addEventListener("progress",function(e){let t=e.loaded/e.total*100;t=t.toFixed(2);var d;r.find("span.dlm-xhr-progress").remove(),d="dlm-download-started download-"+10*Math.ceil(t/10),1/0!=t&&r.append('<span class="dlm-xhr-progress">&nbsp;'+t+"%</span>"),r.removeClass().addClass(s+" "+d),jQuery(document).trigger("dlm_download_progress",[this,o,r,i,e,t])}),a.onerror=function(){o.removeAttribute("download"),o.setAttribute("href",l),r.removeClass().addClass(s+" .dlm-no-xhr-download").find("span.dlm-xhr-progress").remove(),r.append('<span class="dlm-xhr-error">'+dlmXHRtranslations.error+"</span>"),console.log("** An error occurred during the transaction")},a.open("GET",t,!0),a.setRequestHeader("dlm-xhr-request","dlm_XMLHttpRequest"),a.send()}}
assets/js/download-operations.js CHANGED
@@ -1,4 +1,5 @@
1
  jQuery( function ($) {
 
2
  // Browse for file
3
  jQuery( 'body' ).on( 'click', 'a.dlm_insert_download', function () {
4
 
@@ -16,7 +17,6 @@ jQuery( function ($) {
16
  buttonText = button.text(),
17
  data = {
18
  action : ('protect_file' === objectData.action) ? 'dlm_protect_file' : 'dlm_unprotect_file',
19
- title : objectData.title,
20
  _ajax_nonce : objectData.nonce,
21
  user_id : objectData.user_id,
22
  file : objectData.file,
@@ -49,4 +49,30 @@ jQuery( function ($) {
49
  }
50
  });
51
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
  });
1
  jQuery( function ($) {
2
+
3
  // Browse for file
4
  jQuery( 'body' ).on( 'click', 'a.dlm_insert_download', function () {
5
 
17
  buttonText = button.text(),
18
  data = {
19
  action : ('protect_file' === objectData.action) ? 'dlm_protect_file' : 'dlm_unprotect_file',
 
20
  _ajax_nonce : objectData.nonce,
21
  user_id : objectData.user_id,
22
  file : objectData.file,
49
  }
50
  });
51
  });
52
+ });
53
+
54
+ jQuery(document).ready(function () {
55
+ if (undefined !== wp.media) {
56
+ wp.media.view.Attachment.Library = wp.media.view.Attachment.Library.extend(
57
+ {
58
+ className: function () {
59
+ // Mainly class for attachment.
60
+ let attachmentClass = 'attachment';
61
+
62
+ // If the dlmCustomClass attribute exists than apply it.
63
+ if ('undefined' !== this.model.get('dlmCustomClass')) {
64
+ attachmentClass += ' ' + this.model.get('dlmCustomClass');
65
+ }
66
+ // If the customClass attirbute exists than apply it.
67
+ if ('undefined' !== this.model.get('customClass')) {
68
+ attachmentClass += ' ' + this.model.get('customClass');
69
+ }
70
+ // Trigger this event in case other plugins want to attach to this.
71
+ jQuery(document).trigger('dlm_custom_attachment_class', [this.model, attachmentClass]);
72
+ // Return the class for attachment.
73
+ return attachmentClass;
74
+ }
75
+ }
76
+ );
77
+ }
78
  });
assets/js/download-operations.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(n){jQuery("body").on("click","a.dlm_insert_download",function(){return tb_show(dlm_id_strings.insert_download,"media-upload.php?type=add_download&amp;from=wpdlm01&amp;TB_iframe=true&amp;height=200"),!1}),n(document).on("click","#dlm-protect-file",function(t){t.preventDefault();const a=n(this).data(),i=n(this),o=i.text(),e={action:"protect_file"===a.action?"dlm_protect_file":"dlm_unprotect_file",title:a.title,_ajax_nonce:a.nonce,user_id:a.user_id,file:a.file,attachment_id:a.post_id};i.attr("disabled","disabled"),i.text("Please wait..."),n.post(ajaxurl,e,function(t){if(t.success){i.text(t.data.text),t.data.url&&(i.parents(".attachment-info").find("#attachment-details-two-column-copy-link").val(t.data.url),jQuery("#attachment_url").val(t.data.url));const e="protect_file"===a.action?"unprotect_file":"protect_file";i.data("action",e),setTimeout(function(){var t="protect_file"==e?"Protect File":"Unprotect File";i.text(t),i.removeAttr("disabled")},3e3)}else i.text(t.data),setTimeout(function(){i.text(o),i.removeAttr("disabled")},3e3)})})});
1
+ jQuery(function(n){jQuery("body").on("click","a.dlm_insert_download",function(){return tb_show(dlm_id_strings.insert_download,"media-upload.php?type=add_download&amp;from=wpdlm01&amp;TB_iframe=true&amp;height=200"),!1}),n(document).on("click","#dlm-protect-file",function(t){t.preventDefault();const a=n(this).data(),i=n(this),o=i.text(),e={action:"protect_file"===a.action?"dlm_protect_file":"dlm_unprotect_file",_ajax_nonce:a.nonce,user_id:a.user_id,file:a.file,attachment_id:a.post_id};i.attr("disabled","disabled"),i.text("Please wait..."),n.post(ajaxurl,e,function(t){if(t.success){i.text(t.data.text),t.data.url&&(i.parents(".attachment-info").find("#attachment-details-two-column-copy-link").val(t.data.url),jQuery("#attachment_url").val(t.data.url));const e="protect_file"===a.action?"unprotect_file":"protect_file";i.data("action",e),setTimeout(function(){var t="protect_file"==e?"Protect File":"Unprotect File";i.text(t),i.removeAttr("disabled")},3e3)}else i.text(t.data),setTimeout(function(){i.text(o),i.removeAttr("disabled")},3e3)})})}),jQuery(document).ready(function(){void 0!==wp.media&&(wp.media.view.Attachment.Library=wp.media.view.Attachment.Library.extend({className:function(){let t="attachment";return"undefined"!==this.model.get("dlmCustomClass")&&(t+=" "+this.model.get("dlmCustomClass")),"undefined"!==this.model.get("customClass")&&(t+=" "+this.model.get("customClass")),jQuery(document).trigger("dlm_custom_attachment_class",[this.model,t]),t}}))});
assets/views/meta-box/version.php CHANGED
@@ -142,6 +142,16 @@ if ( ! defined( 'ABSPATH' ) ) {
142
  placeholder="<?php echo esc_attr__( 'n/a', 'download-monitor' ); ?>"
143
  value="<?php echo esc_attr( $file_version ); ?>"/>
144
  </div>
 
 
 
 
 
 
 
 
 
 
145
  <?php if ( ! empty( $file_post_date->format( 'Y-m-d' ) ) ) {
146
  ?>
147
  <div class="dlm-file-version__date">
142
  placeholder="<?php echo esc_attr__( 'n/a', 'download-monitor' ); ?>"
143
  value="<?php echo esc_attr( $file_version ); ?>"/>
144
  </div>
145
+ <div>
146
+ <label><?php echo esc_html__( 'Manual download count', 'download-monitor' ); ?>:</label>
147
+ <div class="wpchill-tooltip"><i>[?]</i>
148
+ <div
149
+ class="wpchill-tooltip-content"><?php esc_html_e( 'Taken into consideration for the total download count ( total = Download Monitor custom table count + manual download count ).', 'download-monitor' ); ?></div>
150
+ </div>
151
+ <input type="text" class="short"
152
+ name="downloadable_file_download_count[<?php echo esc_attr( $version_increment ); ?>]"
153
+ placeholder="<?php echo esc_attr( $meta_download_count ); ?>"/>
154
+ </div>
155
  <?php if ( ! empty( $file_post_date->format( 'Y-m-d' ) ) ) {
156
  ?>
157
  <div class="dlm-file-version__date">
changelog.txt CHANGED
@@ -1,3 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
  = 4.7.2 - 24.10.2022 =
2
  Fixed: Possible overload of server on the Reports page ( [#1102](https://github.com/WPChill/download-monitor/issues/1102) )
3
  Changed: Plugin Logo ( [#1101](https://github.com/WPChill/download-monitor/issues/1101) )
1
+ = 4.7.3 - 1.11.2022 =
2
+ Fixed: Reports not working when cache is set ( [#1113](https://github.com/WPChill/download-monitor/issues/1113) )
3
+ Fixed: Security update regarding directory traversal ( [#1111](https://github.com/WPChill/download-monitor/issues/1111) )
4
+ Fixed: Admin Downloads list order by title ( [#1110](https://github.com/WPChill/download-monitor/issues/1110) )
5
+ Fixed: Fallback for links that use the XHR triggering classes ( [#1109](https://github.com/WPChill/download-monitor/issues/1109) )
6
+ Fixed: Cannot modify headers error when setting cookie ( [#1108](https://github.com/WPChill/download-monitor/issues/1108) )
7
+ Changed: Media Library - restored default view and kept filter for Download Monitor used files ( [#1107](https://github.com/WPChill/download-monitor/issues/1107) )
8
+ Fixed: Media Library visual indicator for Download Monitor protected files ( [#1106](https://github.com/WPChill/download-monitor/issues/1106) )
9
+ Changed: Reconsider the Download's post meta for download count, priorly used as main download count info ( [#1105](https://github.com/WPChill/download-monitor/issues/1105) )
10
+ Fixed: Warning when trying to read current screen ( [#1104](https://github.com/WPChill/download-monitor/issues/1104) )
11
+ Fixed: Count downloads when the reports/logs are disabled ( [#1103](https://github.com/WPChill/download-monitor/issues/1103) )
12
+
13
  = 4.7.2 - 24.10.2022 =
14
  Fixed: Possible overload of server on the Reports page ( [#1102](https://github.com/WPChill/download-monitor/issues/1102) )
15
  Changed: Plugin Logo ( [#1101](https://github.com/WPChill/download-monitor/issues/1101) )
download-monitor.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Download Monitor
4
  Plugin URI: https://www.download-monitor.com
5
  Description: A full solution for managing and selling downloadable files, monitoring downloads and outputting download links and file information on your WordPress powered site.
6
- Version: 4.7.2
7
  Author: WPChill
8
  Author URI: https://wpchill.com
9
  Requires at least: 5.4
@@ -34,7 +34,7 @@ if ( ! defined( 'ABSPATH' ) ) {
34
 
35
  // Define DLM Version
36
 
37
- define( 'DLM_VERSION', '4.7.2' );
38
  define( 'DLM_UPGRADER_VERSION', '4.6.0' );
39
 
40
  // Define DLM FILE
3
  Plugin Name: Download Monitor
4
  Plugin URI: https://www.download-monitor.com
5
  Description: A full solution for managing and selling downloadable files, monitoring downloads and outputting download links and file information on your WordPress powered site.
6
+ Version: 4.7.3
7
  Author: WPChill
8
  Author URI: https://wpchill.com
9
  Requires at least: 5.4
34
 
35
  // Define DLM Version
36
 
37
+ define( 'DLM_VERSION', '4.7.3' );
38
  define( 'DLM_UPGRADER_VERSION', '4.6.0' );
39
 
40
  // Define DLM FILE
includes/backwards-compatibility/class-dlm-backwards-compatibility.php CHANGED
@@ -80,17 +80,20 @@ class DLM_Backwards_Compatibility {
80
  /**
81
  * Backwards compatibility function for the total_downloads shortcode.
82
  *
83
- * @param mixed $total Total downloads to be displayed.
 
84
  * @return mixed
85
  *
86
  * @since 4.6.0
87
  */
88
  public function total_downloads_shortcode( $total ) {
89
 
90
- if ( false === $total ) {
91
- global $wpdb;
 
 
92
 
93
- $total = $wpdb->get_var(
94
  "
95
  SELECT SUM( meta_value ) FROM $wpdb->postmeta
96
  LEFT JOIN $wpdb->posts on $wpdb->postmeta.post_id = $wpdb->posts.ID
@@ -101,8 +104,7 @@ class DLM_Backwards_Compatibility {
101
  );
102
  }
103
 
104
- return $total;
105
-
106
  }
107
 
108
  /**
@@ -159,7 +161,7 @@ class DLM_Backwards_Compatibility {
159
  add_filter( 'dlm_query_args_filter', array( $this, 'query_args_download_count_compatibility' ), 60 );
160
  add_filter( 'posts_join', array( $this, 'join_download_count_compatibility' ) );
161
  // @todo: delete this filter and function after feedback, as version 4.7.0 doesn't need it.
162
- //add_filter( 'posts_where', array( $this, 'where_download_count_compatibility' ) );
163
  add_filter( 'posts_groupby', array( $this, 'groupby_download_count_compatibility' ) );
164
  add_filter( 'posts_fields', array( $this, 'select_download_count_compatibility' ) );
165
  add_filter( 'posts_orderby', array( $this, 'orderby_download_count_compatibility' ) );
@@ -330,7 +332,7 @@ class DLM_Backwards_Compatibility {
330
  public function add_meta_download_count( $counts, $download_id ) {
331
 
332
  // Filter to enable adding meta counts to download counts.
333
- $count_meta = apply_filters( 'dlm_count_meta_downloads', false );
334
 
335
  if ( ( isset( $this->upgrade_option['using_logs'] ) && '0' === $this->upgrade_option['using_logs'] ) || $count_meta ) {
336
 
80
  /**
81
  * Backwards compatibility function for the total_downloads shortcode.
82
  *
83
+ * @param mixed $total Total downloads to be displayed.
84
+ *
85
  * @return mixed
86
  *
87
  * @since 4.6.0
88
  */
89
  public function total_downloads_shortcode( $total ) {
90
 
91
+ global $wpdb;
92
+ $meta_counts = 0;
93
+ // Apply the meta count to the total downloads.
94
+ if ( apply_filters( 'dlm_count_meta_downloads', true ) ) {
95
 
96
+ $meta_counts = $wpdb->get_var(
97
  "
98
  SELECT SUM( meta_value ) FROM $wpdb->postmeta
99
  LEFT JOIN $wpdb->posts on $wpdb->postmeta.post_id = $wpdb->posts.ID
104
  );
105
  }
106
 
107
+ return absint( $total ) + absint( $meta_counts );
 
108
  }
109
 
110
  /**
161
  add_filter( 'dlm_query_args_filter', array( $this, 'query_args_download_count_compatibility' ), 60 );
162
  add_filter( 'posts_join', array( $this, 'join_download_count_compatibility' ) );
163
  // @todo: delete this filter and function after feedback, as version 4.7.0 doesn't need it.
164
+ // add_filter( 'posts_where', array( $this, 'where_download_count_compatibility' ) );
165
  add_filter( 'posts_groupby', array( $this, 'groupby_download_count_compatibility' ) );
166
  add_filter( 'posts_fields', array( $this, 'select_download_count_compatibility' ) );
167
  add_filter( 'posts_orderby', array( $this, 'orderby_download_count_compatibility' ) );
332
  public function add_meta_download_count( $counts, $download_id ) {
333
 
334
  // Filter to enable adding meta counts to download counts.
335
+ $count_meta = apply_filters( 'dlm_count_meta_downloads', true );
336
 
337
  if ( ( isset( $this->upgrade_option['using_logs'] ) && '0' === $this->upgrade_option['using_logs'] ) || $count_meta ) {
338
 
readme.txt CHANGED
@@ -2,8 +2,8 @@
2
  Contributors: wpchill, silkalns, barrykooij, mikejolley
3
  Tags: download manager, document management, file manager, digital store, ecommerce, document management plugin, download monitor, download counter, password protection, download protection, password, protect downloads, tracker, sell, shop, ecommerce, paypal
4
  Requires at least: 5.4
5
- Tested up to: 6.0
6
- Stable tag: 4.7.2
7
  License: GPLv3
8
  Text Domain: -
9
  Requires PHP: 5.6
@@ -121,6 +121,18 @@ More documentation can be found in our [Knowledge Base](https://www.download-mon
121
 
122
  == Changelog ==
123
 
 
 
 
 
 
 
 
 
 
 
 
 
124
  = 4.7.2 - 24.10.2022 =
125
  Fixed: Possible overload of server on the Reports page ( [#1102](https://github.com/WPChill/download-monitor/issues/1102) )
126
  Changed: Plugin Logo ( [#1101](https://github.com/WPChill/download-monitor/issues/1101) )
2
  Contributors: wpchill, silkalns, barrykooij, mikejolley
3
  Tags: download manager, document management, file manager, digital store, ecommerce, document management plugin, download monitor, download counter, password protection, download protection, password, protect downloads, tracker, sell, shop, ecommerce, paypal
4
  Requires at least: 5.4
5
+ Tested up to: 6.1
6
+ Stable tag: 4.7.3
7
  License: GPLv3
8
  Text Domain: -
9
  Requires PHP: 5.6
121
 
122
  == Changelog ==
123
 
124
+ = 4.7.3 - 1.11.2022 =
125
+ Fixed: Reports not working when cache is set ( [#1113](https://github.com/WPChill/download-monitor/issues/1113) )
126
+ Fixed: Security update regarding directory traversal ( [#1111](https://github.com/WPChill/download-monitor/issues/1111) )
127
+ Fixed: Admin Downloads list order by title ( [#1110](https://github.com/WPChill/download-monitor/issues/1110) )
128
+ Fixed: Fallback for links that use the XHR triggering classes ( [#1109](https://github.com/WPChill/download-monitor/issues/1109) )
129
+ Fixed: Cannot modify headers error when setting cookie ( [#1108](https://github.com/WPChill/download-monitor/issues/1108) )
130
+ Changed: Media Library - restored default view and kept filter for Download Monitor used files ( [#1107](https://github.com/WPChill/download-monitor/issues/1107) )
131
+ Fixed: Media Library visual indicator for Download Monitor protected files ( [#1106](https://github.com/WPChill/download-monitor/issues/1106) )
132
+ Changed: Reconsider the Download's post meta for download count, priorly used as main download count info ( [#1105](https://github.com/WPChill/download-monitor/issues/1105) )
133
+ Fixed: Warning when trying to read current screen ( [#1104](https://github.com/WPChill/download-monitor/issues/1104) )
134
+ Fixed: Count downloads when the reports/logs are disabled ( [#1103](https://github.com/WPChill/download-monitor/issues/1103) )
135
+
136
  = 4.7.2 - 24.10.2022 =
137
  Fixed: Possible overload of server on the Reports page ( [#1102](https://github.com/WPChill/download-monitor/issues/1102) )
138
  Changed: Plugin Logo ( [#1101](https://github.com/WPChill/download-monitor/issues/1101) )
src/Admin/AdminScripts.php CHANGED
@@ -26,7 +26,8 @@ class DLM_Admin_Scripts {
26
  'dlm_insert_download',
27
  plugins_url( '/assets/js/download-operations' . ( ( ! SCRIPT_DEBUG ) ? '.min' : '' ) . '.js', $dlm->get_plugin_file() ),
28
  array( 'jquery' ),
29
- DLM_VERSION
 
30
  );
31
 
32
  // Notices JS
26
  'dlm_insert_download',
27
  plugins_url( '/assets/js/download-operations' . ( ( ! SCRIPT_DEBUG ) ? '.min' : '' ) . '.js', $dlm->get_plugin_file() ),
28
  array( 'jquery' ),
29
+ DLM_VERSION,
30
+ true
31
  );
32
 
33
  // Notices JS
src/Admin/CustomActions.php CHANGED
@@ -177,6 +177,8 @@ class DLM_Custom_Actions {
177
  'meta_key' => '_redirect_only',
178
  'orderby' => 'meta_value'
179
  ) );
 
 
180
  }
181
  }
182
 
@@ -458,6 +460,6 @@ class DLM_Custom_Actions {
458
  * Display admin notice
459
  */
460
  public function admin_notice() {
461
- echo '<div class="updated"><p>' . __( 'Download succesfully duplicated!', 'dlm-download-duplicator' ) . '</p></div>' . PHP_EOL;
462
  }
463
- }
177
  'meta_key' => '_redirect_only',
178
  'orderby' => 'meta_value'
179
  ) );
180
+ } elseif ( 'download_title' === $vars['orderby'] ) {
181
+ $vars['orderby'] = 'title';
182
  }
183
  }
184
 
460
  * Display admin notice
461
  */
462
  public function admin_notice() {
463
+ echo '<div class="updated"><p>' . esc_html__( 'Download succesfully duplicated!', 'dlm-download-duplicator' ) . '</p></div>' . PHP_EOL;
464
  }
465
+ }
src/Admin/CustomColumns.php CHANGED
@@ -178,11 +178,12 @@ class DLM_Custom_Columns {
178
  */
179
  public function sortable_columns( $columns ) {
180
  $custom = array(
181
- 'download_id' => 'download_id',
182
- 'download_count' => 'download_count',
183
- 'featured' => 'featured',
184
- 'locked_download' => 'locked_download',
185
- 'redirect_only' => 'redirect_only',
 
186
  );
187
 
188
  return wp_parse_args( $custom, $columns );
@@ -221,12 +222,12 @@ class DLM_Custom_Columns {
221
  *
222
  * @return string
223
  */
224
- public function set_primary_column_name( $column_name, $context ){
225
- if( 'edit-dlm_download' === $context ){
226
 
227
  return 'download_title';
228
  }
229
 
230
  return $column_name;
231
- }
232
  }
178
  */
179
  public function sortable_columns( $columns ) {
180
  $custom = array(
181
+ 'download_id' => 'download_id',
182
+ 'download_title' => 'download_title',
183
+ 'download_count' => 'download_count',
184
+ 'featured' => 'featured',
185
+ 'locked_download' => 'locked_download',
186
+ 'redirect_only' => 'redirect_only',
187
  );
188
 
189
  return wp_parse_args( $custom, $columns );
222
  *
223
  * @return string
224
  */
225
+ public function set_primary_column_name( $column_name, $context ) {
226
+ if ( 'edit-dlm_download' === $context ) {
227
 
228
  return 'download_title';
229
  }
230
 
231
  return $column_name;
232
+ }
233
  }
src/Admin/Dashboard.php CHANGED
@@ -94,7 +94,7 @@ class DLM_Admin_Dashboard {
94
  <div>
95
  <span class="dlm-reports-top-downloads__overflower" style="width: <?php echo absint( $width ); ?>%;"></span>
96
  <a href="<?php echo esc_url( admin_url( 'post.php?post=' . absint( $download->get_id() ) . '&amp;action=edit' ) ); ?>"
97
- title="<?php echo sprintf( esc_html__( 'Click to edit download: %s', 'download-monitor' ), $download->get_title() ); ?>"
98
  target="_blank"><?php echo esc_html( $download->get_title() ); ?></a>
99
  </div>
100
  <div>
94
  <div>
95
  <span class="dlm-reports-top-downloads__overflower" style="width: <?php echo absint( $width ); ?>%;"></span>
96
  <a href="<?php echo esc_url( admin_url( 'post.php?post=' . absint( $download->get_id() ) . '&amp;action=edit' ) ); ?>"
97
+ title="<?php echo sprintf( esc_html__( 'Click to edit download: %s', 'download-monitor' ), esc_html( $download->get_title() ) ); ?>"
98
  target="_blank"><?php echo esc_html( $download->get_title() ); ?></a>
99
  </div>
100
  <div>
src/Admin/Reports/Page.php CHANGED
@@ -24,9 +24,7 @@ class DLM_Reports_Page {
24
  public function setup() {
25
 
26
  // menu item.
27
- if ( DLM_Logging::is_logging_enabled() ) {
28
- add_filter( 'dlm_admin_menu_links', array( $this, 'add_admin_menu' ), 30 );
29
- }
30
 
31
  // Set this action on order for other plugins/themes to tap into our tabs.
32
  add_action( 'admin_init', array( $this, 'set_tabs' ) );
@@ -78,8 +76,12 @@ class DLM_Reports_Page {
78
  * @return array
79
  */
80
  public function add_admin_menu( $links ) {
 
 
 
 
81
 
82
- // Reports page page.
83
  $links[] = array(
84
  'page_title' => __( 'Reports', 'download-monitor' ),
85
  'menu_title' => __( 'Reports', 'download-monitor' ),
24
  public function setup() {
25
 
26
  // menu item.
27
+ add_filter( 'dlm_admin_menu_links', array( $this, 'add_admin_menu' ), 30 );
 
 
28
 
29
  // Set this action on order for other plugins/themes to tap into our tabs.
30
  add_action( 'admin_init', array( $this, 'set_tabs' ) );
76
  * @return array
77
  */
78
  public function add_admin_menu( $links ) {
79
+ // If Reports are disabled don't add the menu item.
80
+ if ( ! DLM_Logging::is_logging_enabled() ) {
81
+ return $links;
82
+ }
83
 
84
+ // Reports page.
85
  $links[] = array(
86
  'page_title' => __( 'Reports', 'download-monitor' ),
87
  'menu_title' => __( 'Reports', 'download-monitor' ),
src/Admin/Reports/class-dlm-reports.php CHANGED
@@ -250,24 +250,16 @@ if ( ! class_exists( 'DLM_Reports' ) ) {
250
  return array();
251
  }
252
 
253
- $cache_key = 'dlm_insights';
254
- $stats = wp_cache_get( $cache_key, 'dlm_reports_page' );
255
- $offset = isset( $_REQUEST['offset'] ) ? absint( sanitize_text_field( wp_unslash( $_REQUEST['offset'] ) ) ) : 0;
256
- $count = isset( $_REQUEST['limit'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['limit'] ) ) : 1000;
257
- $offset_limit = $offset * 1000;
258
- $download_stats = array();
259
-
260
- if ( ! $stats ) {
261
- $stats = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->dlm_reports} LIMIT {$offset_limit}, {$count};", null ), ARRAY_A );
262
- $download_stats = array(
263
- 'stats' => $stats,
264
- 'offset' => ( 1000 === count( $stats ) ) ? $offset + 1 : '',
265
- 'done' => ( 1000 > count( $stats ) ) ? true : false,
266
- );
267
- wp_cache_set( $cache_key, $stats, 'dlm_reports_page', 12 * HOUR_IN_SECONDS );
268
- }
269
-
270
- return $download_stats;
271
  }
272
 
273
  /**
@@ -288,36 +280,29 @@ if ( ! class_exists( 'DLM_Reports' ) ) {
288
  );
289
  }
290
 
291
- $cache_key = 'dlm_insights_users';
292
- $user_reports = array();
293
  $offset = isset( $_REQUEST['offset'] ) ? absint( sanitize_text_field( wp_unslash( $_REQUEST['offset'] ) ) ) : 0;
294
  $count = isset( $_REQUEST['limit'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['limit'] ) ) : $this->php_info['retrieved_rows'];
295
  $offset_limit = $offset * $this->php_info['retrieved_rows'];
296
 
297
- $stats = wp_cache_get( $cache_key, 'dlm_user_reports' );
298
- if ( ! $stats ) {
299
- $table_columns = apply_filters(
300
- 'dlm_download_log_columns',
301
- array(
302
- 'user_id',
303
- 'user_ip',
304
- 'download_id',
305
- 'download_date',
306
- 'download_status'
307
- )
308
- );
309
- $table_columns = sanitize_text_field( implode( ',', wp_unslash( $table_columns ) ) );
310
- $downloads = $wpdb->get_results( $wpdb->prepare( 'SELECT ' . $table_columns . ' FROM ' . $wpdb->download_log . " ORDER BY ID desc LIMIT {$offset_limit}, {$count};" ), ARRAY_A );
311
- $user_reports = array(
312
- 'logs' => $downloads,
313
- 'offset' => ( $this->php_info['retrieved_rows'] === count( $downloads ) ) ? $offset + 1 : '',
314
- 'done' => ( $this->php_info['retrieved_rows'] > count( $downloads ) ) ? true : false,
315
- );
316
 
317
- wp_cache_set( $cache_key, $user_reports, 'dlm_user_reports', 12 * HOUR_IN_SECONDS );
318
- }
 
 
 
319
 
320
- return $user_reports;
321
  }
322
 
323
  /**
@@ -335,24 +320,19 @@ if ( ! class_exists( 'DLM_Reports' ) ) {
335
  }
336
 
337
  $users_data = array();
338
- $cache_key = 'dlm_insights_users';
339
- $stats = wp_cache_get( $cache_key, 'dlm_user_data' );
340
- if ( ! $stats ) {
341
- $users = get_users();
342
- foreach ( $users as $user ) {
343
- $user_data = $user->data;
344
- $users_data[] = array(
345
- 'id' => $user_data->ID,
346
- 'nicename' => $user_data->user_nicename,
347
- 'url' => $user_data->user_url,
348
- 'registered' => $user_data->user_registered,
349
- 'display_name' => $user_data->display_name,
350
- 'role' => ( ( ! in_array( 'administrator', $user->roles, true ) ) ? $user->roles : '' ),
351
- );
352
- }
353
-
354
- wp_cache_set( $cache_key, $user_data, 'dlm_user_data', 12 * HOUR_IN_SECONDS );
355
  }
 
356
  return $users_data;
357
  }
358
 
@@ -371,11 +351,6 @@ if ( ! class_exists( 'DLM_Reports' ) ) {
371
  check_ajax_referer( 'dlm_reports_nonce' );
372
  $option = ( isset( $_POST['name'] ) ) ? sanitize_text_field( wp_unslash( $_POST['name'] ) ) : '';
373
 
374
- if ( 'dlm_clear_api_cache' === $option ) {
375
- wp_cache_delete( 'dlm_insights', 'dlm_reports_page' );
376
- die();
377
- }
378
-
379
  if ( isset( $_POST['checked'] ) && 'true' === $_POST['checked'] ) {
380
  $value = 'on';
381
  } else {
250
  return array();
251
  }
252
 
253
+ $offset = isset( $_REQUEST['offset'] ) ? absint( sanitize_text_field( wp_unslash( $_REQUEST['offset'] ) ) ) : 0;
254
+ $count = isset( $_REQUEST['limit'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['limit'] ) ) : 1000;
255
+ $offset_limit = $offset * 1000;
256
+ $stats = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->dlm_reports} LIMIT {$offset_limit}, {$count};", null ), ARRAY_A );
257
+
258
+ return array(
259
+ 'stats' => $stats,
260
+ 'offset' => ( 1000 === count( $stats ) ) ? $offset + 1 : '',
261
+ 'done' => 1000 > count( $stats ),
262
+ );
 
 
 
 
 
 
 
 
263
  }
264
 
265
  /**
280
  );
281
  }
282
 
 
 
283
  $offset = isset( $_REQUEST['offset'] ) ? absint( sanitize_text_field( wp_unslash( $_REQUEST['offset'] ) ) ) : 0;
284
  $count = isset( $_REQUEST['limit'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['limit'] ) ) : $this->php_info['retrieved_rows'];
285
  $offset_limit = $offset * $this->php_info['retrieved_rows'];
286
 
287
+ $table_columns = apply_filters(
288
+ 'dlm_download_log_columns',
289
+ array(
290
+ 'user_id',
291
+ 'user_ip',
292
+ 'download_id',
293
+ 'download_date',
294
+ 'download_status'
295
+ )
296
+ );
297
+ $table_columns = sanitize_text_field( implode( ',', wp_unslash( $table_columns ) ) );
298
+ $downloads = $wpdb->get_results( $wpdb->prepare( 'SELECT ' . $table_columns . ' FROM ' . $wpdb->download_log . " ORDER BY ID desc LIMIT {$offset_limit}, {$count};" ), ARRAY_A );
 
 
 
 
 
 
 
299
 
300
+ return array(
301
+ 'logs' => $downloads,
302
+ 'offset' => ( $this->php_info['retrieved_rows'] === count( $downloads ) ) ? $offset + 1 : '',
303
+ 'done' => $this->php_info['retrieved_rows'] > count( $downloads ),
304
+ );
305
 
 
306
  }
307
 
308
  /**
320
  }
321
 
322
  $users_data = array();
323
+ $users = get_users();
324
+ foreach ( $users as $user ) {
325
+ $user_data = $user->data;
326
+ $users_data[] = array(
327
+ 'id' => $user_data->ID,
328
+ 'nicename' => $user_data->user_nicename,
329
+ 'url' => $user_data->user_url,
330
+ 'registered' => $user_data->user_registered,
331
+ 'display_name' => $user_data->display_name,
332
+ 'role' => ( ( ! in_array( 'administrator', $user->roles, true ) ) ? $user->roles : '' ),
333
+ );
 
 
 
 
 
 
334
  }
335
+
336
  return $users_data;
337
  }
338
 
351
  check_ajax_referer( 'dlm_reports_nonce' );
352
  $option = ( isset( $_POST['name'] ) ) ? sanitize_text_field( wp_unslash( $_POST['name'] ) ) : '';
353
 
 
 
 
 
 
354
  if ( isset( $_POST['checked'] ) && 'true' === $_POST['checked'] ) {
355
  $value = 'on';
356
  } else {
src/Admin/WritePanels.php CHANGED
@@ -313,6 +313,7 @@ class DLM_Admin_Writepanels {
313
  'file_version' => $version->get_version(),
314
  'file_post_date' => $version->get_date(),
315
  'file_download_count' => $version->get_download_count(),
 
316
  'file_urls' => $version->get_mirrors(),
317
  'version' => $version,
318
  'date_format' => get_option( 'date_format' ),
@@ -433,6 +434,7 @@ class DLM_Admin_Writepanels {
433
  $this->download_post->set_featured( ( isset( $_POST['_featured'] ) ) );
434
  $this->download_post->set_members_only( ( isset( $_POST['_members_only'] ) ) );
435
  $this->download_post->set_redirect_only( ( isset( $_POST['_redirect_only'] ) ) );
 
436
 
437
  // Process files
438
  if ( isset( $_POST['downloadable_file_id'] ) ) {
@@ -446,6 +448,7 @@ class DLM_Admin_Writepanels {
446
  $downloadable_file_date = isset( $_POST['downloadable_file_date'] ) ? $_POST['downloadable_file_date'] : '';
447
  $downloadable_file_date_hour = isset( $_POST['downloadable_file_date_hour'] ) ? $_POST['downloadable_file_date_hour'] : array();
448
  $downloadable_file_date_minute = isset( $_POST['downloadable_file_date_minute'] ) ? $_POST['downloadable_file_date_minute'] : array();
 
449
 
450
  // loop
451
  for ( $i = 0; $i <= max( array_keys( $downloadable_file_id ) ); $i ++ ) {
@@ -456,15 +459,16 @@ class DLM_Admin_Writepanels {
456
  }
457
 
458
  // sanatize post data
459
- $file_id = absint( $downloadable_file_id[ $i ] );
460
- $file_menu_order = absint( $downloadable_file_menu_order[ $i ] );
461
- $file_version = strtolower( sanitize_text_field( $downloadable_file_version[ $i ] ) );
462
- $file_date_hour = ( ! empty( $downloadable_file_date_hour[ $i ] ) ) ? absint( $downloadable_file_date_hour[ $i ] ) : 0;
463
- $file_date_minute = ! empty( $downloadable_file_date_minute[ $i ] ) ? absint( $downloadable_file_date_minute[ $i ] ) : 0;
464
- $file_date = ! empty( $downloadable_file_date[ $i ] ) ? sanitize_text_field( $downloadable_file_date[ $i ] ) : new DateTime();
465
- $files = array_filter( array_map( 'trim', explode( "\n", $downloadable_file_urls[ $i ] ) ) );
466
- $secured_files = array();
467
- $file_manager = new DLM_File_Manager();
 
468
 
469
  foreach ( $files as $file ) {
470
  list( $file_path ) = $file_manager->get_secure_path( $file, true );
@@ -500,8 +504,15 @@ class DLM_Admin_Writepanels {
500
  $version->set_date( $file_date_obj );
501
  $version->set_mirrors( $secured_files );
502
 
 
 
 
 
 
503
  // persist version
504
  download_monitor()->service( 'version_repository' )->persist( $version );
 
 
505
 
506
  } catch ( Exception $e ) {
507
 
@@ -512,6 +523,8 @@ class DLM_Admin_Writepanels {
512
  }
513
  }
514
 
 
 
515
  // persist download
516
  download_monitor()->service( 'download_repository' )->persist( $this->download_post );
517
 
313
  'file_version' => $version->get_version(),
314
  'file_post_date' => $version->get_date(),
315
  'file_download_count' => $version->get_download_count(),
316
+ 'meta_download_count' => $version->get_meta_download_count(),
317
  'file_urls' => $version->get_mirrors(),
318
  'version' => $version,
319
  'date_format' => get_option( 'date_format' ),
434
  $this->download_post->set_featured( ( isset( $_POST['_featured'] ) ) );
435
  $this->download_post->set_members_only( ( isset( $_POST['_members_only'] ) ) );
436
  $this->download_post->set_redirect_only( ( isset( $_POST['_redirect_only'] ) ) );
437
+ $total_meta_download_count = 0;
438
 
439
  // Process files
440
  if ( isset( $_POST['downloadable_file_id'] ) ) {
448
  $downloadable_file_date = isset( $_POST['downloadable_file_date'] ) ? $_POST['downloadable_file_date'] : '';
449
  $downloadable_file_date_hour = isset( $_POST['downloadable_file_date_hour'] ) ? $_POST['downloadable_file_date_hour'] : array();
450
  $downloadable_file_date_minute = isset( $_POST['downloadable_file_date_minute'] ) ? $_POST['downloadable_file_date_minute'] : array();
451
+ $downloadable_file_download_count = isset( $_POST['downloadable_file_download_count'] ) ? $_POST['downloadable_file_download_count'] : array();
452
 
453
  // loop
454
  for ( $i = 0; $i <= max( array_keys( $downloadable_file_id ) ); $i ++ ) {
459
  }
460
 
461
  // sanatize post data
462
+ $file_id = absint( $downloadable_file_id[ $i ] );
463
+ $file_menu_order = absint( $downloadable_file_menu_order[ $i ] );
464
+ $file_version = strtolower( sanitize_text_field( $downloadable_file_version[ $i ] ) );
465
+ $file_date_hour = ( ! empty( $downloadable_file_date_hour[ $i ] ) ) ? absint( $downloadable_file_date_hour[ $i ] ) : 0;
466
+ $file_date_minute = ! empty( $downloadable_file_date_minute[ $i ] ) ? absint( $downloadable_file_date_minute[ $i ] ) : 0;
467
+ $file_date = ! empty( $downloadable_file_date[ $i ] ) ? sanitize_text_field( $downloadable_file_date[ $i ] ) : new DateTime();
468
+ $file_download_count = sanitize_text_field( $downloadable_file_download_count[ $i ] );
469
+ $files = array_filter( array_map( 'trim', explode( "\n", $downloadable_file_urls[ $i ] ) ) );
470
+ $secured_files = array();
471
+ $file_manager = new DLM_File_Manager();
472
 
473
  foreach ( $files as $file ) {
474
  list( $file_path ) = $file_manager->get_secure_path( $file, true );
504
  $version->set_date( $file_date_obj );
505
  $version->set_mirrors( $secured_files );
506
 
507
+ // only set download count if is posted
508
+ if ( '' !== $file_download_count ) {
509
+ $version->set_meta_download_count( $file_download_count );
510
+ }
511
+
512
  // persist version
513
  download_monitor()->service( 'version_repository' )->persist( $version );
514
+ // add version download count to total download count
515
+ $total_meta_download_count += absint( $version->get_meta_download_count() );
516
 
517
  } catch ( Exception $e ) {
518
 
523
  }
524
  }
525
 
526
+ // sync download_count
527
+ $this->download_post->set_meta_download_count( $total_meta_download_count );
528
  // persist download
529
  download_monitor()->service( 'download_repository' )->persist( $this->download_post );
530
 
src/Admin/class-dlm-media-library.php CHANGED
@@ -15,7 +15,7 @@ class DLM_Media_Library {
15
  * @since 4.7.2
16
  *
17
  * @var object
18
- */
19
  public static $instance;
20
 
21
  /**
@@ -143,25 +143,9 @@ class DLM_Media_Library {
143
  */
144
  public function no_media_library_display( $query ) {
145
 
146
- //Check for the added temporary mime_type so that we can filter the Media Library contents
147
- if ( ! isset( $query['post_mime_type'] ) || 'dlm_uploads_files' !== $query['post_mime_type'] ) {
148
- if ( ! isset( $query['meta_query'] ) ) {
149
- $query['meta_query'] = array(
150
- 'relation' => 'AND',
151
- array(
152
- 'key' => '_wp_attached_file',
153
- 'compare' => 'NOT LIKE',
154
- 'value' => 'dlm_uploads'
155
- )
156
- );
157
- } else {
158
- $query['meta_query'][] = array(
159
- 'key' => '_wp_attached_file',
160
- 'compare' => 'NOT LIKE',
161
- 'value' => 'dlm_uploads'
162
- );
163
- }
164
- } else {
165
  unset( $query['post_mime_type'] );
166
  $query['meta_key'] = '_wp_attached_file';
167
  $query['meta_query'][] = array(
@@ -187,7 +171,7 @@ class DLM_Media_Library {
187
  // Add a filter to the Media Library page so that we can filter regular uploads and Download Monitor's uploads
188
  if ( $screen === 'attachment' ) {
189
  $views = apply_filters( 'dlm_media_views', array(
190
- 'uploads_folder' => __( 'Uploads folder', 'download-monitor' ),
191
  'dlm_uploads_folder' => __( 'Download Monitor', 'download-monitor' )
192
  ) );
193
 
@@ -196,7 +180,7 @@ class DLM_Media_Library {
196
  <select name="dlm_upload_folder_type">
197
  <?php
198
  foreach ( $views as $key => $view ) {
199
- echo '<option value="' . $key . '" ' . selected( $key, $applied_filter ) . '>' . $view . '</option>';
200
  }
201
  ?>
202
  </select>
@@ -217,17 +201,18 @@ class DLM_Media_Library {
217
  if ( ! is_admin() || false === strpos( $_SERVER['REQUEST_URI'], '/wp-admin/upload.php' ) ) {
218
  return;
219
  }
220
- // If users views uploads folder then we don't need to show DLM uploads.
221
- $compare = 'NOT LIKE';
222
- // If user views the DLM Uploads folder then we need to show DLM uploads.
223
- if ( isset( $_GET['dlm_upload_folder_type'] ) && 'dlm_uploads_folder' === $_GET['dlm_upload_folder_type'] ) {
224
- $compare = 'LIKE';
225
  }
 
 
226
  // Set the meta query for the corresponding request.
227
  $query->set( 'meta_key', '_wp_attached_file' );
228
  $query->set( 'meta_query', array(
229
  'key' => '_wp_attached_file',
230
- 'compare' => $compare,
231
  'value' => 'dlm_uploads'
232
  ) );
233
  }
@@ -248,7 +233,7 @@ class DLM_Media_Library {
248
 
249
  $screen = get_current_screen();
250
  // If we are not on the Media Library page or editing the Download then we don't need to add the mime types.
251
- if ( ! is_admin() || ( 'upload' !== $screen->base && 'attachment' !== $screen->post_type && 'dlm_download' !== $screen->post_type ) ) {
252
  return $mimes;
253
  }
254
 
@@ -286,14 +271,19 @@ class DLM_Media_Library {
286
  $button_text = __( 'Protect', 'download-monitor' );
287
  $action = 'protect_file';
288
  $text = esc_html__( 'Creates a Download based on this file and moves the file to Download Monitor\'s protected folder. Also replaces the attachment\'s URL with the download link.', 'download-monitor' );
289
-
290
  if ( '1' === get_post_meta( $post->ID, 'dlm_protected_file', true ) ) {
291
  $button_text = __( 'Unprotect', 'download-monitor' );
292
  $action = 'unprotect_file';
293
  $text = esc_html__( 'Moves the file from Download Monitor\'s protected directory to the uploads directory. Also places back the original URL for this attachment.', 'download-monitor' );
 
 
 
 
 
294
  }
295
 
296
- $html = '<button id="dlm-protect-file" class="button button-primary" data-action="' . esc_attr( $action ) . '" data-post_id="' . absint( $post->ID ) . '" data-nonce="' . wp_create_nonce( 'dlm_protect_file' ) . '" data-title="' . esc_attr( $post->title ) . '" data-user_id="' . get_current_user_id() . '" data-file="' . esc_url( wp_get_attachment_url( $post->ID ) ) . '" >' . esc_html( $button_text ) . '</button><p class="description">' . $text . '</p>';
297
 
298
  // Add our button
299
  $fields['dlm_protect_file'] = array(
@@ -396,7 +386,8 @@ class DLM_Media_Library {
396
  $known_download = get_post_meta( $file['attachment_id'], 'dlm_download', true );
397
  // If not, protect and add the corresponding meta, Download & Version
398
  if ( empty( $known_download ) ) {
399
- $download_title = ( empty( $file['title'] ) ) ? DLM_Utils::basename( $file['file'] ) : $file['title'];
 
400
  // Create the Download object.
401
  $download = array(
402
  'post_title' => $download_title,
@@ -480,33 +471,56 @@ class DLM_Media_Library {
480
  public function add_visual_indicator( $response, $attachment ) {
481
 
482
  if ( '1' === get_post_meta( $attachment->ID, 'dlm_protected_file', true ) ) {
483
- $response['customClass'] = 'dlm-ml-protected-file';
 
 
484
  }
485
 
486
  return $response;
487
  }
488
 
 
 
 
 
 
 
 
 
489
  public function dlm_ml_column( $columns ) {
490
  $columns['dlm_protection'] = __( 'Download Monitor', 'download-monitor' );
491
 
492
  return $columns;
493
  }
494
 
 
 
 
 
 
 
 
 
 
495
  public function manage_dlm_ml_column( $column_name, $id ) {
496
 
497
  if ( $column_name == 'dlm_protection' ) {
498
-
499
  if ( '1' === get_post_meta( $id, 'dlm_protected_file', true ) ) {
500
  ?>
501
  <img
502
- src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4IDE0QzI4IDYuMjY4MDEgMjEuNzMyIDAgMTQgMEM2LjI2ODAxIDAgMCA2LjI2ODAxIDAgMTRDMCAyMS43MzIgNi4yNjgwMSAyOCAxNCAyOEMyMS43MzIgMjggMjggMjEuNzMyIDI4IDE0WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzM2XzM5KSIvPgo8cGF0aCBkPSJNMTcuNjE1NCAxMi41NjI1SDE3LjM3NVY5LjUxNTYyQzE3LjM3NSA4LjU4MzIyIDE2Ljk5NTEgNy42ODkwMSAxNi4zMTg5IDcuMDI5N0MxNS42NDI3IDYuMzcwNCAxNC43MjU1IDYgMTMuNzY5MiA2QzEyLjgxMjkgNiAxMS44OTU4IDYuMzcwNCAxMS4yMTk2IDcuMDI5N0MxMC41NDM0IDcuNjg5MDEgMTAuMTYzNSA4LjU4MzIyIDEwLjE2MzUgOS41MTU2MlYxMi41NjI1SDkuOTIzMDhDOS40MTMwNSAxMi41NjI1IDguOTIzOSAxMi43NiA4LjU2MzI2IDEzLjExMTdDOC4yMDI2MSAxMy40NjMzIDggMTMuOTQwMiA4IDE0LjQzNzVWMTkuMTI1QzggMTkuNjIyMyA4LjIwMjYxIDIwLjA5OTIgOC41NjMyNiAyMC40NTA4QzguOTIzOSAyMC44MDI1IDkuNDEzMDUgMjEgOS45MjMwOCAyMUgxNy42MTU0QzE4LjEyNTQgMjEgMTguNjE0NiAyMC44MDI1IDE4Ljk3NTIgMjAuNDUwOEMxOS4zMzU5IDIwLjA5OTIgMTkuNTM4NSAxOS42MjIzIDE5LjUzODUgMTkuMTI1VjE0LjQzNzVDMTkuNTM4NSAxMy45NDAyIDE5LjMzNTkgMTMuNDYzMyAxOC45NzUyIDEzLjExMTdDMTguNjE0NiAxMi43NiAxOC4xMjU0IDEyLjU2MjUgMTcuNjE1NCAxMi41NjI1VjEyLjU2MjVaTTExLjEyNSA5LjUxNTYyQzExLjEyNSA4LjgzMTg2IDExLjQwMzYgOC4xNzYxMSAxMS44OTk1IDcuNjkyNjJDMTIuMzk1NCA3LjIwOTEyIDEzLjA2NzkgNi45Mzc1IDEzLjc2OTIgNi45Mzc1QzE0LjQ3MDUgNi45Mzc1IDE1LjE0MzEgNy4yMDkxMiAxNS42MzkgNy42OTI2MkMxNi4xMzQ5IDguMTc2MTEgMTYuNDEzNSA4LjgzMTg2IDE2LjQxMzUgOS41MTU2MlYxMi41NjI1SDExLjEyNVY5LjUxNTYyWk0xNC4yNSAxNy45NTMxQzE0LjI1IDE4LjA3NzQgMTQuMTk5MyAxOC4xOTY3IDE0LjEwOTIgMTguMjg0NkMxNC4wMTkgMTguMzcyNSAxMy44OTY3IDE4LjQyMTkgMTMuNzY5MiAxOC40MjE5QzEzLjY0MTcgMTguNDIxOSAxMy41MTk0IDE4LjM3MjUgMTMuNDI5MyAxOC4yODQ2QzEzLjMzOTEgMTguMTk2NyAxMy4yODg1IDE4LjA3NzQgMTMuMjg4NSAxNy45NTMxVjE1LjYwOTRDMTMuMjg4NSAxNS40ODUxIDEzLjMzOTEgMTUuMzY1OCAxMy40MjkzIDE1LjI3NzlDMTMuNTE5NCAxNS4xOSAxMy42NDE3IDE1LjE0MDYgMTMuNzY5MiAxNS4xNDA2QzEzLjg5NjcgMTUuMTQwNiAxNC4wMTkgMTUuMTkgMTQuMTA5MiAxNS4yNzc5QzE0LjE5OTMgMTUuMzY1OCAxNC4yNSAxNS40ODUxIDE0LjI1IDE1LjYwOTRWMTcuOTUzMVoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzZfMzkiIHgxPSItNy41NDY4NyIgeTE9Ii00LjM3NSIgeDI9IjI1LjU5MzciIHkyPSIyOC43NjU2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIG9mZnNldD0iMC4xMTAxMTMiIHN0b3AtY29sb3I9IiM1RERFRkIiLz4KPHN0b3Agb2Zmc2V0PSIwLjQ0MzU2OCIgc3RvcC1jb2xvcj0iIzQxOUJDQSIvPgo8c3RvcCBvZmZzZXQ9IjAuNjM2MTIyIiBzdG9wLWNvbG9yPSIjMDA4Q0Q1Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAyNUVBMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=">
503
  <?php
504
- } else {
505
  ?>
 
 
 
 
506
  <span class="dashicons dashicons-no"
507
  style="color:red"></span><?php echo esc_html__( 'Un-Protected', 'download-monitor' ) ?>
508
- <?php
509
- }
510
 
511
  }
512
  }
@@ -562,8 +576,8 @@ class DLM_Media_Library {
562
  return;
563
  }
564
 
565
- $action = $_GET['dlm_action'];
566
- $posts = $_GET['posts'];
567
 
568
  if ( 'dlm_protect_files' === $action ) {
569
  foreach ( $posts as $post_id ) {
15
  * @since 4.7.2
16
  *
17
  * @var object
18
+ *//**/
19
  public static $instance;
20
 
21
  /**
143
  */
144
  public function no_media_library_display( $query ) {
145
 
146
+ // Check for the added temporary mime_type so that we can filter the Media Library contents
147
+ // and show only the files that are in dlm_uploads ( aka protected )
148
+ if ( isset( $query['post_mime_type'] ) && 'dlm_uploads_files' === $query['post_mime_type'] ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
149
  unset( $query['post_mime_type'] );
150
  $query['meta_key'] = '_wp_attached_file';
151
  $query['meta_query'][] = array(
171
  // Add a filter to the Media Library page so that we can filter regular uploads and Download Monitor's uploads
172
  if ( $screen === 'attachment' ) {
173
  $views = apply_filters( 'dlm_media_views', array(
174
+ 'uploads_folder' => __( 'All files', 'download-monitor' ),
175
  'dlm_uploads_folder' => __( 'Download Monitor', 'download-monitor' )
176
  ) );
177
 
180
  <select name="dlm_upload_folder_type">
181
  <?php
182
  foreach ( $views as $key => $view ) {
183
+ echo '<option value="' . esc_attr( $key ) . '" ' . selected( $key, $applied_filter ) . '>' . esc_html( $view ) . '</option>';
184
  }
185
  ?>
186
  </select>
201
  if ( ! is_admin() || false === strpos( $_SERVER['REQUEST_URI'], '/wp-admin/upload.php' ) ) {
202
  return;
203
  }
204
+
205
+ // If users views all media then we don't need to do anything
206
+ if ( ! isset( $_GET['dlm_upload_folder_type'] ) || 'dlm_uploads_folder' !== sanitize_text_field( wp_unslash( $_GET['dlm_upload_folder_type'] ) ) ) {
207
+ return;
 
208
  }
209
+
210
+ // If user views the DLM Uploads folder then we need to show DLM uploads only.
211
  // Set the meta query for the corresponding request.
212
  $query->set( 'meta_key', '_wp_attached_file' );
213
  $query->set( 'meta_query', array(
214
  'key' => '_wp_attached_file',
215
+ 'compare' => 'LIKE',
216
  'value' => 'dlm_uploads'
217
  ) );
218
  }
233
 
234
  $screen = get_current_screen();
235
  // If we are not on the Media Library page or editing the Download then we don't need to add the mime types.
236
+ if ( null === $screen || ! is_admin() || ( 'upload' !== $screen->base && 'attachment' !== $screen->post_type && 'dlm_download' !== $screen->post_type ) ) {
237
  return $mimes;
238
  }
239
 
271
  $button_text = __( 'Protect', 'download-monitor' );
272
  $action = 'protect_file';
273
  $text = esc_html__( 'Creates a Download based on this file and moves the file to Download Monitor\'s protected folder. Also replaces the attachment\'s URL with the download link.', 'download-monitor' );
274
+ $disabled = false;
275
  if ( '1' === get_post_meta( $post->ID, 'dlm_protected_file', true ) ) {
276
  $button_text = __( 'Unprotect', 'download-monitor' );
277
  $action = 'unprotect_file';
278
  $text = esc_html__( 'Moves the file from Download Monitor\'s protected directory to the uploads directory. Also places back the original URL for this attachment.', 'download-monitor' );
279
+ } elseif ( false !== strpos( $post->guid, 'dlm_uploads' ) ) {
280
+ $button_text = __( 'Default file', 'download-monitor' );
281
+ $action = '';
282
+ $text = esc_html__( 'No action is needed.', 'download-monitor' );
283
+ $disabled = true;
284
  }
285
 
286
+ $html = '<button id="dlm-protect-file" class="button button-primary" data-action="' . esc_attr( $action ) . '" data-post_id="' . absint( $post->ID ) . '" data-nonce="' . wp_create_nonce( 'dlm_protect_file' ) . '" data-user_id="' . get_current_user_id() . '" data-file="' . esc_url( wp_get_attachment_url( $post->ID ) ) . '" ' . ( $disabled ? 'disabled="true"' : '' ) . '>' . esc_html( $button_text ) . '</button><p class="description">' . esc_html( $text ) . '</p>';
287
 
288
  // Add our button
289
  $fields['dlm_protect_file'] = array(
386
  $known_download = get_post_meta( $file['attachment_id'], 'dlm_download', true );
387
  // If not, protect and add the corresponding meta, Download & Version
388
  if ( empty( $known_download ) ) {
389
+ $title = get_the_title( $file['attachment_id'] );
390
+ $download_title = ! empty( $title ) ? $title : DLM_Utils::basename( $file['file'] );
391
  // Create the Download object.
392
  $download = array(
393
  'post_title' => $download_title,
471
  public function add_visual_indicator( $response, $attachment ) {
472
 
473
  if ( '1' === get_post_meta( $attachment->ID, 'dlm_protected_file', true ) ) {
474
+ $response['dlmCustomClass'] = 'dlm-ml-protected-file';
475
+ } elseif ( false !== strpos( wp_get_attachment_url( $attachment->ID ), 'dlm_uploads' ) ) {
476
+ $response['dlmCustomClass'] = 'dlm-ml-file';
477
  }
478
 
479
  return $response;
480
  }
481
 
482
+ /**
483
+ * Add a new column to the Media Library
484
+ *
485
+ * @param $columns
486
+ *
487
+ * @return mixed
488
+ * @since 4.7.2
489
+ */
490
  public function dlm_ml_column( $columns ) {
491
  $columns['dlm_protection'] = __( 'Download Monitor', 'download-monitor' );
492
 
493
  return $columns;
494
  }
495
 
496
+ /**
497
+ * Manage the new column in the Media Library
498
+ *
499
+ * @param $column_name
500
+ * @param $id
501
+ *
502
+ * @return void
503
+ * @since 4.7.2
504
+ */
505
  public function manage_dlm_ml_column( $column_name, $id ) {
506
 
507
  if ( $column_name == 'dlm_protection' ) {
508
+ $url = wp_get_attachment_url( $id );
509
  if ( '1' === get_post_meta( $id, 'dlm_protected_file', true ) ) {
510
  ?>
511
  <img
512
+ src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4IDE0QzI4IDYuMjY4MDEgMjEuNzMyIDAgMTQgMEM2LjI2ODAxIDAgMCA2LjI2ODAxIDAgMTRDMCAyMS43MzIgNi4yNjgwMSAyOCAxNCAyOEMyMS43MzIgMjggMjggMjEuNzMyIDI4IDE0WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzM2XzM5KSIvPgo8cGF0aCBkPSJNMTcuNjE1NCAxMi41NjI1SDE3LjM3NVY5LjUxNTYyQzE3LjM3NSA4LjU4MzIyIDE2Ljk5NTEgNy42ODkwMSAxNi4zMTg5IDcuMDI5N0MxNS42NDI3IDYuMzcwNCAxNC43MjU1IDYgMTMuNzY5MiA2QzEyLjgxMjkgNiAxMS44OTU4IDYuMzcwNCAxMS4yMTk2IDcuMDI5N0MxMC41NDM0IDcuNjg5MDEgMTAuMTYzNSA4LjU4MzIyIDEwLjE2MzUgOS41MTU2MlYxMi41NjI1SDkuOTIzMDhDOS40MTMwNSAxMi41NjI1IDguOTIzOSAxMi43NiA4LjU2MzI2IDEzLjExMTdDOC4yMDI2MSAxMy40NjMzIDggMTMuOTQwMiA4IDE0LjQzNzVWMTkuMTI1QzggMTkuNjIyMyA4LjIwMjYxIDIwLjA5OTIgOC41NjMyNiAyMC40NTA4QzguOTIzOSAyMC44MDI1IDkuNDEzMDUgMjEgOS45MjMwOCAyMUgxNy42MTU0QzE4LjEyNTQgMjEgMTguNjE0NiAyMC44MDI1IDE4Ljk3NTIgMjAuNDUwOEMxOS4zMzU5IDIwLjA5OTIgMTkuNTM4NSAxOS42MjIzIDE5LjUzODUgMTkuMTI1VjE0LjQzNzVDMTkuNTM4NSAxMy45NDAyIDE5LjMzNTkgMTMuNDYzMyAxOC45NzUyIDEzLjExMTdDMTguNjE0NiAxMi43NiAxOC4xMjU0IDEyLjU2MjUgMTcuNjE1NCAxMi41NjI1VjEyLjU2MjVaTTExLjEyNSA5LjUxNTYyQzExLjEyNSA4LjgzMTg2IDExLjQwMzYgOC4xNzYxMSAxMS44OTk1IDcuNjkyNjJDMTIuMzk1NCA3LjIwOTEyIDEzLjA2NzkgNi45Mzc1IDEzLjc2OTIgNi45Mzc1QzE0LjQ3MDUgNi45Mzc1IDE1LjE0MzEgNy4yMDkxMiAxNS42MzkgNy42OTI2MkMxNi4xMzQ5IDguMTc2MTEgMTYuNDEzNSA4LjgzMTg2IDE2LjQxMzUgOS41MTU2MlYxMi41NjI1SDExLjEyNVY5LjUxNTYyWk0xNC4yNSAxNy45NTMxQzE0LjI1IDE4LjA3NzQgMTQuMTk5MyAxOC4xOTY3IDE0LjEwOTIgMTguMjg0NkMxNC4wMTkgMTguMzcyNSAxMy44OTY3IDE4LjQyMTkgMTMuNzY5MiAxOC40MjE5QzEzLjY0MTcgMTguNDIxOSAxMy41MTk0IDE4LjM3MjUgMTMuNDI5MyAxOC4yODQ2QzEzLjMzOTEgMTguMTk2NyAxMy4yODg1IDE4LjA3NzQgMTMuMjg4NSAxNy45NTMxVjE1LjYwOTRDMTMuMjg4NSAxNS40ODUxIDEzLjMzOTEgMTUuMzY1OCAxMy40MjkzIDE1LjI3NzlDMTMuNTE5NCAxNS4xOSAxMy42NDE3IDE1LjE0MDYgMTMuNzY5MiAxNS4xNDA2QzEzLjg5NjcgMTUuMTQwNiAxNC4wMTkgMTUuMTkgMTQuMTA5MiAxNS4yNzc5QzE0LjE5OTMgMTUuMzY1OCAxNC4yNSAxNS40ODUxIDE0LjI1IDE1LjYwOTRWMTcuOTUzMVoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzZfMzkiIHgxPSItNy41NDY4NyIgeTE9Ii00LjM3NSIgeDI9IjI1LjU5MzciIHkyPSIyOC43NjU2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIG9mZnNldD0iMC4xMTAxMTMiIHN0b3AtY29sb3I9IiM1RERFRkIiLz4KPHN0b3Agb2Zmc2V0PSIwLjQ0MzU2OCIgc3RvcC1jb2xvcj0iIzQxOUJDQSIvPgo8c3RvcCBvZmZzZXQ9IjAuNjM2MTIyIiBzdG9wLWNvbG9yPSIjMDA4Q0Q1Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAyNUVBMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=" title="<?php esc_attr_e( 'Download Monitor protected file', 'download-monitor' ); ?>">
513
  <?php
514
+ } elseif ( false !== strpos( $url, 'dlm_uploads' ) ) {
515
  ?>
516
+ <img
517
+ src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjgiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAyOCAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTI4IDE0QzI4IDYuMjY4MDEgMjEuNzMyIDAgMTQgMEM2LjI2ODAxIDAgMCA2LjI2ODAxIDAgMTRDMCAyMS43MzIgNi4yNjgwMSAyOCAxNCAyOEMyMS43MzIgMjggMjggMjEuNzMyIDI4IDE0WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzM2XzM5KSIvPgo8cGF0aCBkPSJNMTcuNjE1NCAxMi41NjI1SDE3LjM3NVY5LjUxNTYyQzE3LjM3NSA4LjU4MzIyIDE2Ljk5NTEgNy42ODkwMSAxNi4zMTg5IDcuMDI5N0MxNS42NDI3IDYuMzcwNCAxNC43MjU1IDYgMTMuNzY5MiA2QzEyLjgxMjkgNiAxMS44OTU4IDYuMzcwNCAxMS4yMTk2IDcuMDI5N0MxMC41NDM0IDcuNjg5MDEgMTAuMTYzNSA4LjU4MzIyIDEwLjE2MzUgOS41MTU2MlYxMi41NjI1SDkuOTIzMDhDOS40MTMwNSAxMi41NjI1IDguOTIzOSAxMi43NiA4LjU2MzI2IDEzLjExMTdDOC4yMDI2MSAxMy40NjMzIDggMTMuOTQwMiA4IDE0LjQzNzVWMTkuMTI1QzggMTkuNjIyMyA4LjIwMjYxIDIwLjA5OTIgOC41NjMyNiAyMC40NTA4QzguOTIzOSAyMC44MDI1IDkuNDEzMDUgMjEgOS45MjMwOCAyMUgxNy42MTU0QzE4LjEyNTQgMjEgMTguNjE0NiAyMC44MDI1IDE4Ljk3NTIgMjAuNDUwOEMxOS4zMzU5IDIwLjA5OTIgMTkuNTM4NSAxOS42MjIzIDE5LjUzODUgMTkuMTI1VjE0LjQzNzVDMTkuNTM4NSAxMy45NDAyIDE5LjMzNTkgMTMuNDYzMyAxOC45NzUyIDEzLjExMTdDMTguNjE0NiAxMi43NiAxOC4xMjU0IDEyLjU2MjUgMTcuNjE1NCAxMi41NjI1VjEyLjU2MjVaTTExLjEyNSA5LjUxNTYyQzExLjEyNSA4LjgzMTg2IDExLjQwMzYgOC4xNzYxMSAxMS44OTk1IDcuNjkyNjJDMTIuMzk1NCA3LjIwOTEyIDEzLjA2NzkgNi45Mzc1IDEzLjc2OTIgNi45Mzc1QzE0LjQ3MDUgNi45Mzc1IDE1LjE0MzEgNy4yMDkxMiAxNS42MzkgNy42OTI2MkMxNi4xMzQ5IDguMTc2MTEgMTYuNDEzNSA4LjgzMTg2IDE2LjQxMzUgOS41MTU2MlYxMi41NjI1SDExLjEyNVY5LjUxNTYyWk0xNC4yNSAxNy45NTMxQzE0LjI1IDE4LjA3NzQgMTQuMTk5MyAxOC4xOTY3IDE0LjEwOTIgMTguMjg0NkMxNC4wMTkgMTguMzcyNSAxMy44OTY3IDE4LjQyMTkgMTMuNzY5MiAxOC40MjE5QzEzLjY0MTcgMTguNDIxOSAxMy41MTk0IDE4LjM3MjUgMTMuNDI5MyAxOC4yODQ2QzEzLjMzOTEgMTguMTk2NyAxMy4yODg1IDE4LjA3NzQgMTMuMjg4NSAxNy45NTMxVjE1LjYwOTRDMTMuMjg4NSAxNS40ODUxIDEzLjMzOTEgMTUuMzY1OCAxMy40MjkzIDE1LjI3NzlDMTMuNTE5NCAxNS4xOSAxMy42NDE3IDE1LjE0MDYgMTMuNzY5MiAxNS4xNDA2QzEzLjg5NjcgMTUuMTQwNiAxNC4wMTkgMTUuMTkgMTQuMTA5MiAxNS4yNzc5QzE0LjE5OTMgMTUuMzY1OCAxNC4yNSAxNS40ODUxIDE0LjI1IDE1LjYwOTRWMTcuOTUzMVoiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMzZfMzkiIHgxPSItNy41NDY4NyIgeTE9Ii00LjM3NSIgeDI9IjI1LjU5MzciIHkyPSIyOC43NjU2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CjxzdG9wIG9mZnNldD0iMC4xMTAxMTMiIHN0b3AtY29sb3I9IiM1RERFRkIiLz4KPHN0b3Agb2Zmc2V0PSIwLjQ0MzU2OCIgc3RvcC1jb2xvcj0iIzQxOUJDQSIvPgo8c3RvcCBvZmZzZXQ9IjAuNjM2MTIyIiBzdG9wLWNvbG9yPSIjMDA4Q0Q1Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAyNUVBMCIvPgo8L2xpbmVhckdyYWRpZW50Pgo8L2RlZnM+Cjwvc3ZnPgo=" title="<?php esc_attr_e( 'Download Monitor file', 'download-monitor' ); ?>">
518
+ <?php
519
+ } else { ?>
520
  <span class="dashicons dashicons-no"
521
  style="color:red"></span><?php echo esc_html__( 'Un-Protected', 'download-monitor' ) ?>
522
+
523
+ <?php }
524
 
525
  }
526
  }
576
  return;
577
  }
578
 
579
+ $action = sanitize_text_field( wp_unslash( $_GET['dlm_action'] ) );
580
+ $posts = array_map( 'absint', $_GET['posts'] );
581
 
582
  if ( 'dlm_protect_files' === $action ) {
583
  foreach ( $posts as $post_id ) {
src/AjaxHandler.php CHANGED
@@ -165,6 +165,11 @@ class DLM_Ajax_Handler {
165
  die();
166
  }
167
 
 
 
 
 
 
168
  $path = sanitize_text_field( wp_unslash( $_POST['path'] ) );
169
 
170
  // List all files
165
  die();
166
  }
167
 
168
+ // If searched path is not a child of ABSPATH die - prevents directory traversal
169
+ if ( false === strpos( $_POST['path'], ABSPATH ) ) {
170
+ die();
171
+ }
172
+
173
  $path = sanitize_text_field( wp_unslash( $_POST['path'] ) );
174
 
175
  // List all files
src/Download/Download.php CHANGED
@@ -33,6 +33,9 @@ class DLM_Download {
33
  /** @var int */
34
  private $download_count = 0;
35
 
 
 
 
36
  /** @var int */
37
  private $total_download_count = 0;
38
 
@@ -309,6 +312,29 @@ class DLM_Download {
309
  $this->download_count = $download_count;
310
  }
311
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
312
  /**
313
  * @return int
314
  */
33
  /** @var int */
34
  private $download_count = 0;
35
 
36
+ /** @var int */
37
+ private $meta_download_count = 0;
38
+
39
  /** @var int */
40
  private $total_download_count = 0;
41
 
312
  $this->download_count = $download_count;
313
  }
314
 
315
+ /**
316
+ * @return int
317
+ */
318
+ public function get_meta_download_count() {
319
+
320
+ // set default download count
321
+ $download_count = $this->meta_download_count;
322
+
323
+ // set download count of latest version if set
324
+ if ( null != $this->get_version() && ! $this->get_version()->is_latest() ) {
325
+ $download_count = $this->get_version()->get_meta_download_count();
326
+ }
327
+
328
+ return $download_count;
329
+ }
330
+
331
+ /**
332
+ * @param int $download_count
333
+ */
334
+ public function set_meta_download_count( $download_count ) {
335
+ $this->meta_download_count = $download_count;
336
+ }
337
+
338
  /**
339
  * @return int
340
  */
src/Download/WordPressDownloadRepository.php CHANGED
@@ -87,7 +87,7 @@ class DLM_WordPress_Download_Repository implements DLM_Download_Repository {
87
  $download_count = 0;
88
  // Check to see if the table exists first.
89
  if ( DLM_Utils::table_checker( $wpdb->dlm_downloads ) ) {
90
- $download_count = $wpdb->get_var( $wpdb->prepare( "SELECT download.download_count FROM {$wpdb->dlm_downloads} as download WHERE download_id = %s;", $download_id ) );
91
  }
92
 
93
  return apply_filters( 'dlm_add_meta_download_count', $download_count, $download_id );
@@ -292,6 +292,8 @@ class DLM_WordPress_Download_Repository implements DLM_Download_Repository {
292
  update_post_meta( $download_id, '_featured', ( ( $download->is_featured() ) ? 'yes' : 'no' ) );
293
  update_post_meta( $download_id, '_members_only', ( ( $download->is_members_only() ) ? 'yes' : 'no' ) );
294
  update_post_meta( $download_id, '_redirect_only', ( ( $download->is_redirect_only() ) ? 'yes' : 'no' ) );
 
 
295
 
296
  // clear versions transient.
297
  download_monitor()->service( 'transient_manager' )->clear_versions_transient( $download_id );
@@ -363,6 +365,7 @@ class DLM_WordPress_Download_Repository implements DLM_Download_Repository {
363
  $download->set_featured( ( 'yes' === get_post_meta( $post->ID, '_featured', true ) ) );
364
  $download->set_members_only( ( 'yes' === get_post_meta( $post->ID, '_members_only', true ) ) );
365
  $download->set_download_count( absint( $this->retrieve_download_count( $post->ID ) ) );
 
366
 
367
  // This is added for backwards compatibility but will be removed in a later version!
368
  $download->post = $post;
87
  $download_count = 0;
88
  // Check to see if the table exists first.
89
  if ( DLM_Utils::table_checker( $wpdb->dlm_downloads ) ) {
90
+ $download_count = absint( $wpdb->get_var( $wpdb->prepare( "SELECT download.download_count FROM {$wpdb->dlm_downloads} as download WHERE download_id = %s;", $download_id ) ) );
91
  }
92
 
93
  return apply_filters( 'dlm_add_meta_download_count', $download_count, $download_id );
292
  update_post_meta( $download_id, '_featured', ( ( $download->is_featured() ) ? 'yes' : 'no' ) );
293
  update_post_meta( $download_id, '_members_only', ( ( $download->is_members_only() ) ? 'yes' : 'no' ) );
294
  update_post_meta( $download_id, '_redirect_only', ( ( $download->is_redirect_only() ) ? 'yes' : 'no' ) );
295
+ // other download meta.
296
+ update_post_meta( $download_id, '_download_count', absint( $download->get_meta_download_count() ) );
297
 
298
  // clear versions transient.
299
  download_monitor()->service( 'transient_manager' )->clear_versions_transient( $download_id );
365
  $download->set_featured( ( 'yes' === get_post_meta( $post->ID, '_featured', true ) ) );
366
  $download->set_members_only( ( 'yes' === get_post_meta( $post->ID, '_members_only', true ) ) );
367
  $download->set_download_count( absint( $this->retrieve_download_count( $post->ID ) ) );
368
+ $download->set_meta_download_count( absint( get_post_meta( $post->ID, '_download_count', true ) ) );
369
 
370
  // This is added for backwards compatibility but will be removed in a later version!
371
  $download->post = $post;
src/DownloadHandler.php CHANGED
@@ -502,6 +502,13 @@ class DLM_Download_Handler {
502
  if ( false === DLM_Cookie_Manager::exists( $download ) ) {
503
  // Trigger Download Action.
504
  do_action( 'dlm_downloading', $download, $version, $file_path );
 
 
 
 
 
 
 
505
  }
506
 
507
  $referrer = ( isset( $_SERVER['HTTP_REFERER'] ) ) ? esc_url_raw( $_SERVER['HTTP_REFERER'] ) : '';
@@ -513,7 +520,7 @@ class DLM_Download_Handler {
513
  // Redirect to the file...
514
  if ( $download->is_redirect_only() || apply_filters( 'dlm_do_not_force', false, $download, $version ) ) {
515
  if ( ! $this->check_for_xhr() ) {
516
- $this->dlm_logging->log( $download, $version, 'redirect', true, $referrer );
517
  }
518
 
519
  // If it's not a remote file we need to create the correct URL.
@@ -528,8 +535,8 @@ class DLM_Download_Handler {
528
 
529
  if ( $this->check_for_xhr() ) {
530
  // We need to urlencode in case there are unicode characters in the file name.
531
- // Get file name
532
- $file_name = urldecode( DLM_Utils::basename( $file_path ) );
533
 
534
  if ( strstr( $file_name, '?' ) ) {
535
  $file_name = current( explode( '?', $file_name ) );
@@ -553,7 +560,7 @@ class DLM_Download_Handler {
553
  if ( '1' === get_option( 'dlm_xsendfile_enabled' ) ) {
554
  if ( function_exists( 'apache_get_modules' ) && in_array( 'mod_xsendfile', apache_get_modules() ) ) {
555
  if ( ! $this->check_for_xhr() ) {
556
- $this->dlm_logging->log( $download, $version, 'completed', true, $referrer );
557
  }
558
 
559
  header( "X-Sendfile: $file_path" );
@@ -562,7 +569,7 @@ class DLM_Download_Handler {
562
  } elseif ( stristr( getenv( 'SERVER_SOFTWARE' ), 'lighttpd' ) ) {
563
 
564
  if ( ! $this->check_for_xhr() ) {
565
- $this->dlm_logging->log( $download, $version, 'completed', true, $referrer );
566
  }
567
 
568
  header( "X-LIGHTTPD-send-file: $file_path" );
@@ -570,7 +577,7 @@ class DLM_Download_Handler {
570
 
571
  } elseif ( stristr( getenv( 'SERVER_SOFTWARE' ), 'nginx' ) || stristr( getenv( 'SERVER_SOFTWARE' ), 'cherokee' ) ) {
572
  // Log this way as the js doesn't know who the download_id and version_id is
573
- $this->dlm_logging->log( $download, $version, 'completed', true, $referrer );
574
 
575
  // At this point the $correct_path should have a value of the file path as the verification was made prior to this check
576
  // If there are symbolik links the return of the function will be an URL, so the last replace will not be taken into consideration.
@@ -616,7 +623,7 @@ class DLM_Download_Handler {
616
  // Adding contents to an object will trigger error on big files.
617
  if ( $this->readfile_chunked( $file_path, false, $range ) ) {
618
  if ( ! $this->check_for_xhr() ) {
619
- $this->dlm_logging->log( $download, $version, 'completed', true, $referrer );
620
  }
621
  } elseif ( $remote_file ) {
622
  // Redirect - we can't track if this completes or not.
@@ -626,7 +633,7 @@ class DLM_Download_Handler {
626
  }
627
 
628
  header( 'Location: ' . $file_path );
629
- $this->dlm_logging->log( $download, $version, 'redirected', true, $referrer );
630
 
631
  } else {
632
 
@@ -635,7 +642,7 @@ class DLM_Download_Handler {
635
  exit;
636
  }
637
 
638
- $this->dlm_logging->log( $download, $version, 'failed', true, $referrer );
639
  wp_die( esc_html__( 'File not found.', 'download-monitor' ) . ' <a href="' . esc_url( home_url() ) . '">' . esc_html__( 'Go to homepage &rarr;', 'download-monitor' ) . '</a>', esc_html__( 'Download Error', 'download-monitor' ), array( 'response' => 404 ) );
640
  }
641
  exit;
502
  if ( false === DLM_Cookie_Manager::exists( $download ) ) {
503
  // Trigger Download Action.
504
  do_action( 'dlm_downloading', $download, $version, $file_path );
505
+ // Set the cookie to prevent multiple download logs in download window of 60 seconds.
506
+ // Do this only for non-XHR downloads as XHR downloads are logged through AJAX request
507
+ if ( '1' === get_option( 'dlm_enable_window_logging', '0' ) && ! $this->check_for_xhr() ) {
508
+ // Set cookie here to prevent "Cannot modify header information - headers already sent" error
509
+ // in non-XHR downloads.
510
+ DLM_Cookie_Manager::set_cookie( $download );
511
+ }
512
  }
513
 
514
  $referrer = ( isset( $_SERVER['HTTP_REFERER'] ) ) ? esc_url_raw( $_SERVER['HTTP_REFERER'] ) : '';
520
  // Redirect to the file...
521
  if ( $download->is_redirect_only() || apply_filters( 'dlm_do_not_force', false, $download, $version ) ) {
522
  if ( ! $this->check_for_xhr() ) {
523
+ $this->dlm_logging->log( $download, $version, 'redirect', false, $referrer );
524
  }
525
 
526
  // If it's not a remote file we need to create the correct URL.
535
 
536
  if ( $this->check_for_xhr() ) {
537
  // We need to urlencode in case there are unicode characters in the file name.
538
+ // Get file name.
539
+ $file_name = DLM_Utils::basename( $file_path );
540
 
541
  if ( strstr( $file_name, '?' ) ) {
542
  $file_name = current( explode( '?', $file_name ) );
560
  if ( '1' === get_option( 'dlm_xsendfile_enabled' ) ) {
561
  if ( function_exists( 'apache_get_modules' ) && in_array( 'mod_xsendfile', apache_get_modules() ) ) {
562
  if ( ! $this->check_for_xhr() ) {
563
+ $this->dlm_logging->log( $download, $version, 'completed', false, $referrer );
564
  }
565
 
566
  header( "X-Sendfile: $file_path" );
569
  } elseif ( stristr( getenv( 'SERVER_SOFTWARE' ), 'lighttpd' ) ) {
570
 
571
  if ( ! $this->check_for_xhr() ) {
572
+ $this->dlm_logging->log( $download, $version, 'completed', false, $referrer );
573
  }
574
 
575
  header( "X-LIGHTTPD-send-file: $file_path" );
577
 
578
  } elseif ( stristr( getenv( 'SERVER_SOFTWARE' ), 'nginx' ) || stristr( getenv( 'SERVER_SOFTWARE' ), 'cherokee' ) ) {
579
  // Log this way as the js doesn't know who the download_id and version_id is
580
+ $this->dlm_logging->log( $download, $version, 'completed', false, $referrer );
581
 
582
  // At this point the $correct_path should have a value of the file path as the verification was made prior to this check
583
  // If there are symbolik links the return of the function will be an URL, so the last replace will not be taken into consideration.
623
  // Adding contents to an object will trigger error on big files.
624
  if ( $this->readfile_chunked( $file_path, false, $range ) ) {
625
  if ( ! $this->check_for_xhr() ) {
626
+ $this->dlm_logging->log( $download, $version, 'completed', false, $referrer );
627
  }
628
  } elseif ( $remote_file ) {
629
  // Redirect - we can't track if this completes or not.
633
  }
634
 
635
  header( 'Location: ' . $file_path );
636
+ $this->dlm_logging->log( $download, $version, 'redirected', false, $referrer );
637
 
638
  } else {
639
 
642
  exit;
643
  }
644
 
645
+ $this->dlm_logging->log( $download, $version, 'failed', false, $referrer );
646
  wp_die( esc_html__( 'File not found.', 'download-monitor' ) . ' <a href="' . esc_url( home_url() ) . '">' . esc_html__( 'Go to homepage &rarr;', 'download-monitor' ) . '</a>', esc_html__( 'Download Error', 'download-monitor' ), array( 'response' => 404 ) );
647
  }
648
  exit;
src/FileManager.php CHANGED
@@ -67,13 +67,18 @@ class DLM_File_Manager {
67
  $file_check['relative'] = false;
68
 
69
  if ( isset( $parsed_file_path['path'] ) ) {
70
- // Check if common path is contained within the file path, if it doesn't it is a relative path
 
71
  if ( $common_path && strlen( $common_path ) > 1 && false === strpos( $parsed_file_path['path'], $common_path ) ) {
72
- if ( file_exists( $common_path . $parsed_file_path['path'] ) ) {
 
73
  $file_check['exists'] = true;
74
  $file_check['relative'] = true;
 
 
75
  }
76
  } else {
 
77
  if ( file_exists( $parsed_file_path['path'] ) ) {
78
  $file_check['exists'] = true;
79
  }
67
  $file_check['relative'] = false;
68
 
69
  if ( isset( $parsed_file_path['path'] ) ) {
70
+ // Check if common path is contained within the file path, if it doesn't it is a relative path,
71
+ // or it is a non-allowed file.
72
  if ( $common_path && strlen( $common_path ) > 1 && false === strpos( $parsed_file_path['path'], $common_path ) ) {
73
+
74
+ if ( file_exists( $common_path . $parsed_file_path['path'] ) ) { // Check if it's a relative path, so add the common path to it
75
  $file_check['exists'] = true;
76
  $file_check['relative'] = true;
77
+ } elseif ( file_exists( $parsed_file_path['path'] ) ) { // Check if it's an absolute path, most probably a non-allowed file
78
+ $file_check['exists'] = true;
79
  }
80
  } else {
81
+ // If common path is included in the file path, check if the file exists
82
  if ( file_exists( $parsed_file_path['path'] ) ) {
83
  $file_check['exists'] = true;
84
  }
src/Logs/LogItem.php CHANGED
@@ -114,7 +114,8 @@ class DLM_Log_Item {
114
  public function set_current_url( $current_url ) {
115
 
116
  if ( get_option( 'permalink_structure' ) ) {
117
- $current_url = wp_parse_url( $current_url )['path'] . '?' . wp_parse_url( $current_url )['query'];
 
118
  } else {
119
  $current_url = '/' . wp_parse_url( $current_url )['query'];
120
  }
@@ -303,76 +304,80 @@ class DLM_Log_Item {
303
  public function increase_download_count() {
304
  global $wpdb;
305
 
306
- // If there is no table we don't need to increase the download count as it will trigger an error.
307
- if ( ! DLM_Utils::table_checker( $wpdb->download_log ) ) {
308
- return;
309
- }
310
-
311
- $user_id = 0;
312
  $meta_data = null;
313
 
314
  $lmd = $this->get_meta_data();
315
  if ( ! empty( $lmd ) ) {
316
- $meta_data = json_encode( $lmd );
317
  }
318
 
319
  if ( is_user_logged_in() ) {
320
  $user_id = get_current_user_id();
321
  }
322
 
323
- $download_date = current_time( 'mysql', false );
324
  $download_status = $this->get_download_status();
325
 
326
- // Add filters for download_log column entries, so in case the upgrader failed we can still log the download.
327
- /**
328
- * Filter for the download_log columns
329
- * @hooked: ( DLM_Logging, log_entries ) Adds uuid, download_category and download_location
330
- */
331
- $log_entries = apply_filters(
332
- 'dlm_log_entries',
333
- array(
334
- 'user_id' => absint( $this->get_user_id() ),
335
- 'user_ip' => $this->get_user_ip(),
336
- 'user_agent' => $this->get_user_agent(),
337
- 'download_id' => absint( $this->get_download_id() ),
338
- 'version_id' => absint( $this->get_version_id() ),
339
- 'version' => $this->get_version(),
340
- 'download_date' => sanitize_text_field( $download_date ),
341
- 'download_status' => $download_status,
342
- 'download_status_message' => $this->get_download_status_message(),
343
- 'meta_data' => $meta_data
344
- ),
345
- $this
346
- );
347
- /**
348
- * Filter for the download_log columns types
349
- * @hooked: ( DLM_Logging, log_values )
350
- */
351
- $log_values = apply_filters(
352
- 'dlm_log_values',
353
- array(
354
- '%d',
355
- '%s',
356
- '%s',
357
- '%d',
358
- '%s',
359
- '%s',
360
- '%s',
361
- '%s',
362
- '%s',
363
- '%s'
364
- ),
365
- $this
366
- );
367
-
368
- $result = $wpdb->insert(
369
- "{$wpdb->download_log}",
370
- $log_entries,
371
- $log_values
372
- );
 
 
 
 
 
 
 
 
373
  // Let's check if table exists.
374
  if ( DLM_Utils::table_checker( $wpdb->dlm_downloads ) && 'failed' !== $download_status ) {
375
- // Table exists, now log new download into table. This is used for faster download counts, performance issues introduced in version 4.6.0 of plugin
 
376
  $download_id = absint( $this->get_download_id() );
377
  $version_id = absint( $this->get_version_id() );
378
  $downloads_table = "{$wpdb->dlm_downloads}";
@@ -380,7 +385,7 @@ class DLM_Log_Item {
380
  $downloads_insert = "INSERT INTO {$downloads_table} (download_id,download_count,download_versions) VALUES ( %s , %s, %s );";
381
  $downloads_update = "UPDATE {$downloads_table} dlm SET dlm.download_count = dlm.download_count + 1, dlm.download_versions = %s WHERE dlm.download_id = %s";
382
  $check = $wpdb->get_results( $wpdb->prepare( $check_for_downloads, $download_id ), ARRAY_A );
383
- $download_versions = array();
384
  // Check if there is anything there, else insert new row.
385
  if ( null !== $check && ! empty( $check ) ) {
386
  // If meta exists update it, lese insert it.
114
  public function set_current_url( $current_url ) {
115
 
116
  if ( get_option( 'permalink_structure' ) ) {
117
+ $query_url = wp_parse_url( $current_url );
118
+ $current_url = wp_parse_url( $current_url )['path'] . ( isset( $query_url['query'] ) ? '?' . $query_url['query'] : '' );
119
  } else {
120
  $current_url = '/' . wp_parse_url( $current_url )['query'];
121
  }
304
  public function increase_download_count() {
305
  global $wpdb;
306
 
307
+ $user_id = 0;
 
 
 
 
 
308
  $meta_data = null;
309
 
310
  $lmd = $this->get_meta_data();
311
  if ( ! empty( $lmd ) ) {
312
+ $meta_data = wp_json_encode( $lmd );
313
  }
314
 
315
  if ( is_user_logged_in() ) {
316
  $user_id = get_current_user_id();
317
  }
318
 
319
+ $download_date = current_time( 'mysql', false );
320
  $download_status = $this->get_download_status();
321
 
322
+ // If there is no table we don't need to increase the download count as it will trigger an error.
323
+ // Also, we don't need to update the table if the reports are deactivated.
324
+ if ( DLM_Logging::is_logging_enabled() && DLM_Utils::table_checker( $wpdb->download_log ) ) {
325
+
326
+ // Add filters for download_log column entries, so in case the upgrader failed we can still log the download.
327
+ /**
328
+ * Filter for the download_log columns
329
+ *
330
+ * @hooked ( DLM_Logging, log_entries ) Adds uuid, download_category and download_location
331
+ */
332
+ $log_entries = apply_filters(
333
+ 'dlm_log_entries',
334
+ array(
335
+ 'user_id' => absint( $this->get_user_id() ),
336
+ 'user_ip' => $this->get_user_ip(),
337
+ 'user_agent' => $this->get_user_agent(),
338
+ 'download_id' => absint( $this->get_download_id() ),
339
+ 'version_id' => absint( $this->get_version_id() ),
340
+ 'version' => $this->get_version(),
341
+ 'download_date' => sanitize_text_field( $download_date ),
342
+ 'download_status' => $download_status,
343
+ 'download_status_message' => $this->get_download_status_message(),
344
+ 'meta_data' => $meta_data
345
+ ),
346
+ $this
347
+ );
348
+ /**
349
+ * Filter for the download_log columns types
350
+ *
351
+ * @hooked: ( DLM_Logging, log_values )
352
+ */
353
+ $log_values = apply_filters(
354
+ 'dlm_log_values',
355
+ array(
356
+ '%d',
357
+ '%s',
358
+ '%s',
359
+ '%d',
360
+ '%s',
361
+ '%s',
362
+ '%s',
363
+ '%s',
364
+ '%s',
365
+ '%s'
366
+ ),
367
+ $this
368
+ );
369
+
370
+ $result = $wpdb->insert(
371
+ "{$wpdb->download_log}",
372
+ $log_entries,
373
+ $log_values
374
+ );
375
+ }
376
+
377
  // Let's check if table exists.
378
  if ( DLM_Utils::table_checker( $wpdb->dlm_downloads ) && 'failed' !== $download_status ) {
379
+ // Table exists, now log new download into table. This is used for faster download counts,
380
+ // performance issues introduced in version 4.6.0 of plugin.
381
  $download_id = absint( $this->get_download_id() );
382
  $version_id = absint( $this->get_version_id() );
383
  $downloads_table = "{$wpdb->dlm_downloads}";
385
  $downloads_insert = "INSERT INTO {$downloads_table} (download_id,download_count,download_versions) VALUES ( %s , %s, %s );";
386
  $downloads_update = "UPDATE {$downloads_table} dlm SET dlm.download_count = dlm.download_count + 1, dlm.download_versions = %s WHERE dlm.download_id = %s";
387
  $check = $wpdb->get_results( $wpdb->prepare( $check_for_downloads, $download_id ), ARRAY_A );
388
+ $download_versions = array();
389
  // Check if there is anything there, else insert new row.
390
  if ( null !== $check && ! empty( $check ) ) {
391
  // If meta exists update it, lese insert it.
src/Logs/Logging.php CHANGED
@@ -166,14 +166,11 @@ class DLM_Logging {
166
  */
167
  public function log( $download, $version, $status = 'completed', $cookie = true, $url = '-' ) {
168
 
169
- // Check if logging is enabled.
170
- if ( ! self::is_logging_enabled() ) return;
171
-
172
  if ( $this->is_count_unique_ips_only() && true === $this->has_uuid_downloaded_version( $version ) ) {
173
  return;
174
  }
175
 
176
- // setup new log item object
177
  if ( ! DLM_Cookie_Manager::exists( $download ) ) {
178
  $ip = DLM_Utils::get_visitor_ip();
179
  $log_item = new DLM_Log_Item();
166
  */
167
  public function log( $download, $version, $status = 'completed', $cookie = true, $url = '-' ) {
168
 
 
 
 
169
  if ( $this->is_count_unique_ips_only() && true === $this->has_uuid_downloaded_version( $version ) ) {
170
  return;
171
  }
172
 
173
+ // setup new log item object.
174
  if ( ! DLM_Cookie_Manager::exists( $download ) ) {
175
  $ip = DLM_Utils::get_visitor_ip();
176
  $log_item = new DLM_Log_Item();
src/Logs/WordPressLogItemRepository.php CHANGED
@@ -146,8 +146,8 @@ class DLM_WordPress_Log_Item_Repository implements DLM_Log_Item_Repository {
146
  // Set the log date. Should be current date, as logs will be separated by dates.
147
  $log_date = current_time( 'Y-m-d', false );
148
 
149
- //Check first if the table exists, db upgrade process might have failed.
150
- if ( DLM_Utils::table_checker( $wpdb->dlm_reports ) ) {
151
 
152
  $today = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->dlm_reports} WHERE date = %s;", $log_date ), ARRAY_A );
153
 
146
  // Set the log date. Should be current date, as logs will be separated by dates.
147
  $log_date = current_time( 'Y-m-d', false );
148
 
149
+ //Check first if logging is enabled and the table exists, db upgrade process might have failed.
150
+ if ( DLM_Logging::is_logging_enabled() && DLM_Utils::table_checker( $wpdb->dlm_reports ) ) {
151
 
152
  $today = $wpdb->get_results( $wpdb->prepare( "SELECT * FROM {$wpdb->dlm_reports} WHERE date = %s;", $log_date ), ARRAY_A );
153
 
src/PostTypeManager.php CHANGED
@@ -115,6 +115,12 @@ class DLM_Post_Type_Manager {
115
 
116
  },
117
  ));
 
 
 
 
 
 
118
  register_rest_field( 'dlm_download', 'author', array(
119
  'get_callback' => function( $post_arr ) {
120
  return get_the_author_meta( 'nickname', $post_arr['author'] );
115
 
116
  },
117
  ));
118
+ register_rest_field( 'dlm_download', 'download_count', array(
119
+ 'get_callback' => function( $post_arr ) {
120
+ return get_post_meta( $post_arr['id'], '_download_count', true );
121
+
122
+ },
123
+ ));
124
  register_rest_field( 'dlm_download', 'author', array(
125
  'get_callback' => function( $post_arr ) {
126
  return get_the_author_meta( 'nickname', $post_arr['author'] );
src/Shortcodes.php CHANGED
@@ -37,9 +37,9 @@ class DLM_Shortcodes {
37
 
38
  global $wpdb;
39
 
40
- $total = false;
41
 
42
- if ( DLM_Utils::table_checker( $wpdb->dlm_downloads ) && DLM_Logging::is_logging_enabled() ) {
43
  $total = $wpdb->get_results( "SELECT download.download_count FROM {$wpdb->dlm_downloads} as download;",ARRAY_A );
44
  $total = array_sum( array_column( $total, 'download_count' ) );
45
  } else {
37
 
38
  global $wpdb;
39
 
40
+ $total = 0;
41
 
42
+ if ( DLM_Utils::table_checker( $wpdb->dlm_downloads ) ) {
43
  $total = $wpdb->get_results( "SELECT download.download_count FROM {$wpdb->dlm_downloads} as download;",ARRAY_A );
44
  $total = array_sum( array_column( $total, 'download_count' ) );
45
  } else {
src/Version/Version.php CHANGED
@@ -36,6 +36,9 @@ class DLM_Download_Version {
36
  /** @var int */
37
  private $total_download_count = null;
38
 
 
 
 
39
  /** @var int */
40
  private $filesize;
41
 
@@ -221,6 +224,20 @@ class DLM_Download_Version {
221
  $this->total_download_count = $download_count;
222
  }
223
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
224
  /**
225
  * @return string
226
  */
36
  /** @var int */
37
  private $total_download_count = null;
38
 
39
+ /** @var int */
40
+ private $meta_download_count = null;
41
+
42
  /** @var int */
43
  private $filesize;
44
 
224
  $this->total_download_count = $download_count;
225
  }
226
 
227
+ /**
228
+ * @param int $download_count
229
+ */
230
+ public function set_meta_download_count( $download_count ) {
231
+ $this->meta_download_count = $download_count;
232
+ }
233
+
234
+ /**
235
+ * @return int
236
+ */
237
+ public function get_meta_download_count() {
238
+ return $this->meta_download_count;
239
+ }
240
+
241
  /**
242
  * @return string
243
  */
src/Version/WordPressVersionRepository.php CHANGED
@@ -133,6 +133,7 @@ class DLM_WordPress_Version_Repository implements DLM_Version_Repository {
133
  $version->set_date( new DateTime( $post->post_date ) );
134
  $version->set_version( strtolower( get_post_meta( $version->get_id(), '_version', true ) ) );
135
  $version->set_download_count( absint( $this->retrieve_version_download_count( $version->get_id() ) ) );
 
136
  $version->set_filesize( get_post_meta( $version->get_id(), '_filesize', true ) );
137
  $version->set_md5( get_post_meta( $version->get_id(), '_md5', true ) );
138
  $version->set_sha1( get_post_meta( $version->get_id(), '_sha1', true ) );
@@ -225,6 +226,11 @@ class DLM_WordPress_Version_Repository implements DLM_Version_Repository {
225
  }
226
  }
227
 
 
 
 
 
 
228
  // store version
229
  update_post_meta( $version_id, '_version', $version->get_version() );
230
 
133
  $version->set_date( new DateTime( $post->post_date ) );
134
  $version->set_version( strtolower( get_post_meta( $version->get_id(), '_version', true ) ) );
135
  $version->set_download_count( absint( $this->retrieve_version_download_count( $version->get_id() ) ) );
136
+ $version->set_meta_download_count( absint( get_post_meta( $version->get_id(), '_download_count', true ) ) );
137
  $version->set_filesize( get_post_meta( $version->get_id(), '_filesize', true ) );
138
  $version->set_md5( get_post_meta( $version->get_id(), '_md5', true ) );
139
  $version->set_sha1( get_post_meta( $version->get_id(), '_sha1', true ) );
226
  }
227
  }
228
 
229
+ // store version download count if it's not NULL
230
+ if ( null !== $version->get_meta_download_count() ) {
231
+ update_post_meta( $version_id, '_download_count', absint( $version->get_meta_download_count() ) );
232
+ }
233
+
234
  // store version
235
  update_post_meta( $version_id, '_version', $version->get_version() );
236