PluginProbe
ERP: Complete HR, Accounting & CRM Suite Built for WooCommerce / 1.12.6
ERP: Complete HR, Accounting & CRM Suite Built for WooCommerce v1.12.6
1.17.9 1.17.8 1.17.7 1.17.6 1.17.5 1.17.4 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.3.0 1.3.1 1.3.11 1.3.12 1.3.13 1.3.14 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 All 143 releases
erp / includes / Scripts.php

Scripts.php in ERP: Complete HR, Accounting & CRM Suite Built for WooCommerce 1.12.6, at includes/Scripts.php

232 lines 11.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace WeDevs\ERP;
4
5 use WeDevs\ERP\Framework\Traits\Hooker;
6
7 /**
8 * Scripts and styles
9 */
10 class Scripts {
11
12 /*
13 * Hooks
14 */
15 use Hooker;
16
17 /**
18 * Script and style suffix
19 *
20 * @var string
21 */
22 protected $suffix;
23
24 /**
25 * Script version number
26 *
27 * @var int
28 */
29 protected $version;
30
31 /**
32 * Initialize the class
33 */
34 public function __construct() {
35 $this->suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
36 $this->version = WPERP_VERSION;
37
38 $this->action( 'admin_enqueue_scripts', 'scripts_handler' );
39 }
40
41 /**
42 * Register and enqueue scripts and styles
43 *
44 * @return void
45 */
46 public function scripts_handler() {
47 $this->register_scripts();
48 $this->register_styles();
49
50 $this->enqueue_scripts();
51 $this->enqueue_styles();
52 }
53
54 public function register_scripts() {
55
56 // wp_register_script( $handle, $src, $deps, $ver, $in_footer );
57 $vendor = WPERP_ASSETS . '/vendor';
58 $js = WPERP_ASSETS . '/js';
59
60 // register vendors first
61 wp_register_script( 'erp-select2', $vendor . '/select2/select2.full.min.js', [ 'jquery' ], $this->version, true );
62 wp_register_script( 'erp-tiptip', $vendor . '/tiptip/jquery.tipTip.min.js', [ 'jquery' ], $this->version, true );
63 wp_register_script( 'erp-fullcalendar', $vendor . '/fullcalendar/fullcalendar' . $this->suffix . '.js', [ 'jquery', 'moment' ], $this->version, true );
64 wp_register_script( 'erp-datetimepicker', $vendor . '/jquery-ui/timepicker-addon/jquery-ui-timepicker-addon.min.js', [ 'jquery', 'moment' ], $this->version, true );
65 wp_register_script( 'erp-timepicker', $vendor . '/timepicker/jquery.timepicker.min.js', [ 'jquery', 'moment' ], $this->version, true );
66 wp_register_script( 'erp-vuejs', $vendor . '/vue/vue' . $this->suffix . '.js', [ 'jquery' ], $this->version, true );
67 wp_register_script( 'erp-trix-editor', $vendor . '/trix/trix.js', [ 'jquery' ], $this->version, true );
68 wp_register_script( 'erp-nprogress', $vendor . '/nprogress/nprogress.js', [ 'jquery' ], $this->version, true );
69 wp_register_script( 'erp-jvectormap', $vendor . '/jvectormap/jvectormap.min.js', [ 'jquery' ], $this->version, true );
70 wp_register_script( 'erp-jvectormap-world-mill', $vendor . '/jvectormap/jvectormap-world-mill.js', [ 'jquery' ], $this->version, true );
71
72 // sweet alert
73 wp_register_script( 'erp-sweetalert', $vendor . '/sweetalert/sweetalert.min.js', [ 'jquery' ], $this->version, true );
74
75 // Are you sure? JS
76 wp_register_script( 'erp-are-you-sure', $vendor . '/are-you-sure/jquery.are-you-sure.js', [ 'jquery' ], $this->version, true );
77
78 // flot chart
79 wp_register_script( 'erp-flotchart', $vendor . '/flot/jquery.flot.min.js', [ 'jquery' ], $this->version, true );
80 wp_register_script( 'erp-flotchart-time', $vendor . '/flot/jquery.flot.time.min.js', [ 'jquery' ], $this->version, true );
81 wp_register_script( 'erp-flotchart-orerbars', $vendor . '/flot/jquery.flot.orderBars.js', [ 'jquery' ], $this->version, true );
82 wp_register_script( 'erp-flotchart-pie', $vendor . '/flot/jquery.flot.pie.min.js', [ 'jquery' ], $this->version, true );
83 wp_register_script( 'erp-flotchart-axislables', $vendor . '/flot/jquery.flot.axislabels.js', [ 'jquery' ], $this->version, true );
84 wp_register_script( 'erp-flotchart-categories', $vendor . '/flot/jquery.flot.categories.js', [ 'jquery' ], $this->version, true );
85 wp_register_script( 'erp-flotchart-tooltip', $vendor . '/flot/jquery.flot.tooltip.min.js', [ 'jquery' ], $this->version, true );
86 wp_register_script( 'erp-flotchart-resize', $vendor . '/flot/jquery.flot.resize.min.js', [ 'jquery' ], $this->version, true );
87 wp_register_script( 'erp-flotchart-valuelabel', $vendor . '/flot/jquery.flot.valuelabels.js', [ 'jquery' ], $this->version, true );
88 wp_register_script( 'erp-flotchart-navigate', $vendor . '/flot/jquery.flot.navigate.js', [ 'jquery' ], $this->version, true );
89 wp_register_script( 'erp-flotchart-selection', $vendor . '/flot/jquery.flot.selection.js', [ 'jquery' ], $this->version, true );
90 wp_register_script( 'erp-flotchart-stack', $vendor . '/flot/jquery.flot.stack.js', [ 'jquery' ], $this->version, true );
91
92 // Chart js library
93 wp_register_script( 'erp-chartjs', $vendor . '/chartjs/chart.min.js', [ 'jquery' ], $this->version, true );
94
95 // core js files
96 wp_register_script( 'erp-popup', $js . '/jquery-popup' . $this->suffix . '.js', [ 'jquery' ], $this->version, true );
97 wp_register_script( 'erp-script', $js . '/erp' . $this->suffix . '.js', [ 'jquery', 'backbone', 'underscore', 'wp-util', 'jquery-ui-datepicker', 'erp-sweetalert' ], $this->version, true );
98 wp_register_script( 'erp-file-upload', $js . '/upload' . $this->suffix . '.js', [ 'jquery', 'plupload-handlers' ], $this->version, true );
99 wp_register_script( 'erp-admin-settings', $js . '/settings' . $this->suffix . '.js', [ 'jquery' ], $this->version, true );
100 wp_register_script( 'erp-system-status', $js . '/system-status' . $this->suffix . '.js', [ 'jquery' ], $this->version, true );
101
102 // tether.js
103 wp_register_script( 'erp-tether-main', $vendor . '/tether/tether.min.js', [ 'jquery' ], $this->version, true );
104 wp_register_script( 'erp-tether-drop', $vendor . '/tether/drop.min.js', [ 'jquery' ], $this->version, true );
105
106 // clipboard.js
107 wp_register_script( 'erp-clipboard', $vendor . '/clipboard/clipboard.min.js', [ 'jquery' ], $this->version, true );
108
109 // toastr.js
110 wp_register_script( 'erp-toastr', $vendor . '/toastr/toastr.min.js', [], $this->version, true );
111
112 // date range picker
113 wp_register_script( 'erp-daterangepicker', $vendor . '/daterangepicker/daterangepicker.min.js', [ 'jquery' ], $this->version, true );
114 }
115
116 /**
117 * Register all the styles
118 *
119 * @return void
120 */
121 public function register_styles() {
122 $vendor = WPERP_ASSETS . '/vendor';
123 $css = WPERP_ASSETS . '/css';
124
125 wp_register_style( 'erp-fontawesome', $vendor . '/fontawesome/font-awesome.min.css', false, $this->version );
126 wp_register_style( 'erp-select2', $vendor . '/select2/select2.min.css', false, $this->version );
127 wp_register_style( 'erp-tiptip', $vendor . '/tiptip/tipTip.css', false, $this->version );
128 wp_register_style( 'erp-fullcalendar', $vendor . '/fullcalendar/fullcalendar' . $this->suffix . '.css', false, $this->version );
129 wp_register_style( 'erp-datetimepicker', $vendor . '/jquery-ui/timepicker-addon/jquery-ui-timepicker-addon.min.css', false, $this->version );
130 wp_register_style( 'erp-timepicker', $vendor . '/timepicker/jquery.timepicker.css', false, $this->version );
131 wp_register_style( 'erp-trix-editor', $vendor . '/trix/trix.css', false, $this->version );
132 wp_register_style( 'erp-flotchart-valuelabel-css', $vendor . '/flot/plot.css', false, $this->version );
133 wp_register_style( 'erp-nprogress', $vendor . '/nprogress/nprogress.css', false, $this->version );
134 wp_register_style( 'erp-jvectormap', $vendor . '/jvectormap/jvectormap.css', false, $this->version );
135
136 // Register Pro Popup style.
137 if ( ! class_exists( 'WP_ERP_Pro' ) ) {
138 wp_register_style( 'add-pro-popup', $css . '/pro-popup.css', false, $this->version );
139 }
140 // jquery UI
141 wp_register_style( 'jquery-ui', $vendor . '/jquery-ui/jquery-ui-1.9.1.custom.css' );
142
143 // sweet alert
144 wp_register_style( 'erp-sweetalert', $vendor . '/sweetalert/sweetalert.css', false, $this->version );
145
146 // tether drop theme
147 wp_register_style( 'erp-tether-drop-theme', $vendor . '/tether/drop-theme.min.css', false, $this->version );
148
149 // toastr.js
150 wp_register_style( 'erp-toastr', $vendor . '/toastr/toastr.min.css', false, $this->version );
151
152 // core css files
153 wp_register_style( 'erp-styles', $css . '/admin.css', [ 'erp-sweetalert' ], $this->version );
154
155 // custom menu design
156 wp_register_style( 'erp-custom-styles', $css . '/customs.css', false, $this->version );
157
158 // date range picker
159 wp_register_style( 'erp-daterangepicker', $vendor . '/daterangepicker/daterangepicker.min.css', false, $this->version );
160 }
161
162 /**
163 * Enqueue the scripts
164 *
165 * @return void
166 */
167 public function enqueue_scripts() {
168 $screen = get_current_screen();
169 $screen_base = isset( $screen->base ) ? $screen->base : false;
170 $hook = str_replace( sanitize_title( __( 'HR Management', 'erp' ) ), 'hr-management', $screen_base );
171
172 wp_enqueue_script( 'erp-select2' );
173 wp_enqueue_script( 'erp-popup' );
174 wp_enqueue_script( 'erp-script' );
175 wp_enqueue_script( 'erp-are-you-sure' );
176 wp_enqueue_media();
177
178 wp_localize_script( 'erp-script', 'wpErp', [
179 'nonce' => wp_create_nonce( 'erp-nonce' ),
180 'set_logo' => __( 'Set company logo', 'erp' ),
181 'upload_logo' => __( 'Upload company logo', 'erp' ),
182 'remove_logo' => __( 'Remove company logo', 'erp' ),
183 'update_location' => __( 'Update Location', 'erp' ),
184 'create' => __( 'Create', 'erp' ),
185 'update' => __( 'Update', 'erp' ),
186 'formUnsavedMsg' => __( 'You didn\'t save your changes!', 'erp' ),
187 'confirmMsg' => __( 'Are you sure?', 'erp' ),
188 'ajaxurl' => admin_url( 'admin-ajax.php' ),
189 'plupload' => [
190 'url' => admin_url( 'admin-ajax.php' ) . '?nonce=' . wp_create_nonce( 'erp_featured_img' ),
191 'flash_swf_url' => includes_url( 'js/plupload/plupload.flash.swf' ),
192 'filters' => [ [ 'title' => __( 'Allowed Files', 'erp' ), 'extensions' => '*' ] ],
193 'multipart' => true,
194 'urlstream_upload' => true,
195 ],
196 ] );
197
198 wp_enqueue_script( 'erp-menu', WPERP_ASSETS . '/js/erp-menu.js', [], date( 'Ymd' ), true );
199
200 // load country/state JSON on new company page
201 if ( erp_is_contacts_page() ) {
202 wp_enqueue_script( 'post' );
203
204 $country = \WeDevs\ERP\Countries::instance();
205 wp_localize_script( 'erp-script', 'wpErpCountries', $country->load_country_states() );
206 }
207
208 if ( erp_is_current_page( 'erp-hr', 'people', 'employee' ) || erp_is_current_page( 'erp-hr', 'my-profile' ) || ( isset( $_GET['page'] ) && 'erp-company' === $_GET['page'] ) ) {
209 $country = \WeDevs\ERP\Countries::instance();
210 wp_localize_script( 'erp-script', 'wpErpCountries', $country->load_country_states() );
211 }
212 }
213
214 /**
215 * Enqueue the stylesheet
216 *
217 * @return void
218 */
219 public function enqueue_styles() {
220 wp_enqueue_style( 'erp-fontawesome' );
221 wp_enqueue_style( 'erp-select2' );
222 wp_enqueue_style( 'jquery-ui' );
223 wp_enqueue_style( 'erp-styles' );
224
225 $page = isset( $_GET['page'] ) ? sanitize_text_field( wp_unslash( $_GET['page'] ) ) : '';
226
227 if ( ! empty( $page ) && ( 'erp-hr' === $page || 'erp-crm' === $page || 'erp-settings' === $page ) ) {
228 wp_enqueue_style( 'erp-custom-styles' );
229 }
230 }
231 }
232