Version Description
- Fixed github issue #11, where text would be replaced when clicking in replace field of the search box - Thanks to X-Raym
- Fixed shift line up/down hotkeys
- Added editor to Multisite's network admin menu - Thanks to X-Raym
- Added AceIDE logo - Thanks to Kevin Young (rdytogokev)
- Added Fullscreen editor
- Added confirmation to zipping operations
- Slightly modified some keyboard command handlers for usability
- Changed capability from 'create_users' to 'edit_plugins' (See GitHub issue #14)
Download this release
Release Info
Developer | shanept |
Plugin | AceIDE |
Version | 2.5.5 |
Comparing to | |
See all releases |
Code changes from version 2.5.4 to 2.5.5
- AceIDE.php +1 -1
- readme.txt +16 -5
- src/IDE.php +67 -53
- src/Modules/FileOps.php +3 -3
- src/aceide.css +23 -6
- src/images/logo.png +0 -0
- src/js/load-editor.js +131 -63
- src/js/load-filetree-menu.js +14 -6
- vendor/composer/ClassLoader.php +7 -5
- vendor/composer/LICENSE +16 -428
- vendor/composer/autoload_real.php +23 -12
AceIDE.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: AceIDE
|
4 |
* Plugin URI: https://github.com/AceIDE/AceIDE
|
5 |
* Description: WordPress code editor with auto completion of both WordPress and PHP functions with reference, syntax highlighting, line numbers, tabbed editing, automatic backup.
|
6 |
-
* Version: 2.5.
|
7 |
* Author: AceIDE
|
8 |
**/
|
9 |
|
3 |
* Plugin Name: AceIDE
|
4 |
* Plugin URI: https://github.com/AceIDE/AceIDE
|
5 |
* Description: WordPress code editor with auto completion of both WordPress and PHP functions with reference, syntax highlighting, line numbers, tabbed editing, automatic backup.
|
6 |
+
* Version: 2.5.5
|
7 |
* Author: AceIDE
|
8 |
**/
|
9 |
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== AceIDE ===
|
2 |
-
Contributors: shanept, WPsites, Thomas Wieczorek
|
3 |
Tags: code, theme editor, plugin editor, code editor
|
4 |
Requires at least: 3.0
|
5 |
-
Tested up to: 4.
|
6 |
-
Stable tag: 2.5.
|
7 |
|
8 |
A fork of the WPide project, AceIDE is a code editor with the long term goal of becoming the ultimate environment to develop themes and plugins.
|
9 |
|
@@ -32,7 +32,8 @@ This plugin performs best in the Chrome web browser.
|
|
32 |
- Auto indentation
|
33 |
- Tabbed interface for editing multiple files (editing both plugin and theme files at the same time)
|
34 |
- Using the WordPress filesystem API, although currently direct access is forced (edit AceIDE.php in the constructor to change this behaviour) ftp/ssh connections aren't setup yet, since WP will not remember a password need to work out how that will work. Maybe use modal to request password when you save but be able to click save all and save a batch with that password. Passwords defined in wp-config.php are persistent and would fix this problem but people don't generally add those details. Open to ideas here.
|
35 |
-
- Image editing/drawing
|
|
|
36 |
|
37 |
= Future Ideas: =
|
38 |
- Improve the code autocomplete command information, providing more information on the commands, adding links through to the WordPress codex and PHP.net website for further info.
|
@@ -61,6 +62,16 @@ AceIDE on GitHub: https://github.com/AceIDE/editor/
|
|
61 |
1. Default colour picker image
|
62 |
|
63 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
= 2.5.4 =
|
65 |
* Fixed broken SumoPaint image manipulation functionality (see github issue #3)
|
66 |
* Strips noise from other plugins upon opening files (see github issue #5)
|
@@ -71,7 +82,7 @@ AceIDE on GitHub: https://github.com/AceIDE/editor/
|
|
71 |
* Fixed broken zipping functionality (see github issue #2)
|
72 |
|
73 |
= 2.5.2 =
|
74 |
-
* Fixed AceIDE editor main class error on older versions of PHP for unknown shorthand array syntax
|
75 |
|
76 |
= 2.5.1 =
|
77 |
* Fixed dialog issues with Z order of find, settings and git dialogs
|
1 |
=== AceIDE ===
|
2 |
+
Contributors: shanept, WPsites, Thomas Wieczorek, x-raym, rdytogollc
|
3 |
Tags: code, theme editor, plugin editor, code editor
|
4 |
Requires at least: 3.0
|
5 |
+
Tested up to: 4.7.3
|
6 |
+
Stable tag: 2.5.5
|
7 |
|
8 |
A fork of the WPide project, AceIDE is a code editor with the long term goal of becoming the ultimate environment to develop themes and plugins.
|
9 |
|
32 |
- Auto indentation
|
33 |
- Tabbed interface for editing multiple files (editing both plugin and theme files at the same time)
|
34 |
- Using the WordPress filesystem API, although currently direct access is forced (edit AceIDE.php in the constructor to change this behaviour) ftp/ssh connections aren't setup yet, since WP will not remember a password need to work out how that will work. Maybe use modal to request password when you save but be able to click save all and save a batch with that password. Passwords defined in wp-config.php are persistent and would fix this problem but people don't generally add those details. Open to ideas here.
|
35 |
+
- Image editing/drawing
|
36 |
+
- WordPress Multisite support
|
37 |
|
38 |
= Future Ideas: =
|
39 |
- Improve the code autocomplete command information, providing more information on the commands, adding links through to the WordPress codex and PHP.net website for further info.
|
62 |
1. Default colour picker image
|
63 |
|
64 |
== Changelog ==
|
65 |
+
= 2.5.5 =
|
66 |
+
* Fixed github issue #11, where text would be replaced when clicking in replace field of the search box - Thanks to X-Raym
|
67 |
+
* Fixed shift line up/down hotkeys
|
68 |
+
* Added editor to Multisite's network admin menu - Thanks to X-Raym
|
69 |
+
* Added AceIDE logo - Thanks to Kevin Young (rdytogokev)
|
70 |
+
* Added Fullscreen editor
|
71 |
+
* Added confirmation to zipping operations
|
72 |
+
* Slightly modified some keyboard command handlers for usability
|
73 |
+
* Changed capability from 'create_users' to 'edit_plugins' (See GitHub issue #14)
|
74 |
+
|
75 |
= 2.5.4 =
|
76 |
* Fixed broken SumoPaint image manipulation functionality (see github issue #3)
|
77 |
* Strips noise from other plugins upon opening files (see github issue #5)
|
82 |
* Fixed broken zipping functionality (see github issue #2)
|
83 |
|
84 |
= 2.5.2 =
|
85 |
+
* Fixed AceIDE editor main class error on older versions of PHP for unknown shorthand array syntax - Thanks to X-Raym
|
86 |
|
87 |
= 2.5.1 =
|
88 |
* Fixed dialog issues with Z order of find, settings and git dialogs
|
src/IDE.php
CHANGED
@@ -14,13 +14,14 @@ class IDE
|
|
14 |
|
15 |
private $modules = array();
|
16 |
|
17 |
-
function __construct() {
|
18 |
$this->site_url = get_bloginfo('url');
|
19 |
|
20 |
$actions = array (
|
21 |
array( 'admin_menu', array( &$this, 'add_my_menu_page' ) ),
|
22 |
array( 'admin_head', array( &$this, 'add_my_menu_icon' ) ),
|
23 |
array( 'admin_init', array( &$this, 'init_hooks' ) ),
|
|
|
24 |
);
|
25 |
|
26 |
// hook for processing incoming image saves
|
@@ -96,7 +97,7 @@ class IDE
|
|
96 |
}
|
97 |
|
98 |
public static function check_perms( $check_referrer=true ) {
|
99 |
-
$capability = ( is_multisite() ? 'manage_network_themes' : '
|
100 |
|
101 |
if ( defined( 'DISALLOW_FILE_EDIT' ) && ! apply_filters( 'aceide_override_disallow_file_edit', ! DISALLOW_FILE_EDIT ) ) {
|
102 |
wp_die( '<p>' . __( 'You do not have sufficient permissions to edit templates for this site. SORRY' ) . '</p>' );
|
@@ -141,52 +142,63 @@ class IDE
|
|
141 |
}
|
142 |
|
143 |
public function add_admin_js() {
|
144 |
-
$plugin_path = trailingslashit(
|
145 |
-
$
|
|
|
|
|
|
|
|
|
146 |
|
147 |
// include file tree
|
148 |
-
wp_enqueue_script( 'jquery-file-tree', plugins_url( 'js/jqueryFileTree.js', __FILE__ ), array( 'jquery' ) );
|
149 |
// include ace
|
150 |
-
wp_enqueue_script( 'ace', "{$
|
151 |
// include ace modes for css, javascript & php
|
152 |
-
wp_enqueue_script( 'ace-mode-css', "{$
|
153 |
-
wp_enqueue_script( 'ace-mode-less', "{$
|
154 |
-
wp_enqueue_script( 'ace-mode-javascript', "{$
|
155 |
-
wp_enqueue_script( 'ace-mode-php', "{$
|
156 |
-
wp_enqueue_script( 'ace-mode-twig', "{$
|
157 |
// include ace theme
|
158 |
-
wp_enqueue_script( 'ace-theme', "{$
|
159 |
// load emmet
|
160 |
-
wp_enqueue_script( 'aceide-ext-emmet', "{$
|
161 |
-
wp_enqueue_script( 'aceide-emmet', "{$
|
162 |
// wordpress-completion tags
|
163 |
-
wp_enqueue_script( 'aceide-wordpress-completion', "{$
|
164 |
// php-completion tags
|
165 |
-
wp_enqueue_script( 'aceide-php-completion', "{$
|
166 |
// load editor
|
167 |
-
wp_enqueue_script( 'aceide-load-editor', "{$
|
168 |
// load filetree menu
|
169 |
-
wp_enqueue_script( 'aceide-load-filetree-menu', "{$
|
170 |
// load autocomplete dropdown
|
171 |
-
wp_enqueue_script( 'aceide-dd', "{$
|
172 |
|
173 |
// load color picker
|
174 |
-
wp_enqueue_script( 'ImageColorPicker',
|
175 |
}
|
176 |
|
177 |
public function add_admin_styles() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
178 |
// main AceIDE styles
|
179 |
-
wp_register_style( 'aceide_style',
|
180 |
wp_enqueue_style( 'aceide_style' );
|
181 |
// filetree styles
|
182 |
-
wp_register_style( 'aceide_filetree_style',
|
183 |
wp_enqueue_style( 'aceide_filetree_style' );
|
184 |
// autocomplete dropdown styles
|
185 |
-
wp_register_style( 'aceide_dd_style',
|
186 |
wp_enqueue_style( 'aceide_dd_style' );
|
187 |
|
188 |
// jquery ui styles
|
189 |
-
wp_register_style( 'aceide_jqueryui_style',
|
190 |
wp_enqueue_style( 'aceide_jqueryui_style' );
|
191 |
}
|
192 |
|
@@ -479,9 +491,9 @@ class IDE
|
|
479 |
}
|
480 |
|
481 |
if ( version_compare( $wp_version, '3.8', '<' ) ) {
|
482 |
-
$this->menu_hook = add_menu_page( 'AceIDE', 'AceIDE', '
|
483 |
} else {
|
484 |
-
$this->menu_hook = add_menu_page( 'AceIDE', 'AceIDE', '
|
485 |
}
|
486 |
}
|
487 |
|
@@ -663,6 +675,7 @@ class IDE
|
|
663 |
?>
|
664 |
<div id="poststuff" class="metabox-holder has-right-sidebar">
|
665 |
<div id="side-info-column" class="inner-sidebar">
|
|
|
666 |
<div id="aceide_info">
|
667 |
<div id="aceide_info_content"></div>
|
668 |
</div>
|
@@ -701,33 +714,34 @@ class IDE
|
|
701 |
</div>
|
702 |
|
703 |
<div id="post-body">
|
704 |
-
|
705 |
-
<div id="
|
706 |
-
|
707 |
-
|
708 |
-
|
709 |
-
|
710 |
-
<div id="
|
711 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
712 |
</div>
|
713 |
-
<div id='fancyeditordiv'></div>
|
714 |
-
|
715 |
-
<form id="aceide_save_container" action="" method="get">
|
716 |
-
<div id="aceide_footer_message"></div>
|
717 |
-
<div id="aceide_footer_message_last_saved"></div>
|
718 |
-
<div id="aceide_footer_message_unsaved"></div>
|
719 |
-
|
720 |
-
<a href="#" id="aceide_save" alt="<?php esc_attr_e( 'Keyboard shortcut to save [Ctrl/Cmd + S]' ); ?>" title="<?php esc_attr_e( 'Keyboard shortcut to save [Ctrl/Cmd + S]' ); ?>" class="button-primary"><?php esc_html_e( 'SAVE FILE' ); ?></a>
|
721 |
-
<?php if ( defined( 'WP_DEBUG' ) && WP_DEBUG ): ?>
|
722 |
-
<a href="#" id="aceide_git" alt="Open the Git overlay" title="Open the Git overlay" class="button-secondary"><?php esc_html_e( 'Git' ); ?></a>
|
723 |
-
<?php endif; ?>
|
724 |
-
<input type="hidden" id="filename" name="filename" value="" />
|
725 |
-
<?php
|
726 |
-
if ( function_exists( 'wp_nonce_field' ) ) {
|
727 |
-
wp_nonce_field('plugin-name-action_aceidenonce');
|
728 |
-
}
|
729 |
-
?>
|
730 |
-
</form>
|
731 |
</div>
|
732 |
</div>
|
733 |
<div id="editor_find_dialog" title="<?php esc_attr_e( 'Find...' ); ?>" style="padding: 0px; display: none;">
|
@@ -739,7 +753,7 @@ class IDE
|
|
739 |
<?php endif; ?>
|
740 |
<form id="find-inline" style="position: relative; padding: 4px; margin: 0px; height: 100%; overflow: hidden; width: 400px;">
|
741 |
<label class="left"> <?php esc_html_e( 'Find' ); ?><input type="search" name="find" /></label>
|
742 |
-
<label class="left"> <?php esc_html_e( 'Replace' ); ?><input type="search" name="
|
743 |
<div class="clear" style="height: 33px;"></div>
|
744 |
|
745 |
<label><input type="checkbox" name="wrap" checked="checked" /> <?php esc_html_e( 'Wrap Around' ); ?></label>
|
14 |
|
15 |
private $modules = array();
|
16 |
|
17 |
+
public function __construct() {
|
18 |
$this->site_url = get_bloginfo('url');
|
19 |
|
20 |
$actions = array (
|
21 |
array( 'admin_menu', array( &$this, 'add_my_menu_page' ) ),
|
22 |
array( 'admin_head', array( &$this, 'add_my_menu_icon' ) ),
|
23 |
array( 'admin_init', array( &$this, 'init_hooks' ) ),
|
24 |
+
array( 'network_admin_menu', array( &$this, 'add_my_menu_page' ) ),
|
25 |
);
|
26 |
|
27 |
// hook for processing incoming image saves
|
97 |
}
|
98 |
|
99 |
public static function check_perms( $check_referrer=true ) {
|
100 |
+
$capability = ( is_multisite() ? 'manage_network_themes' : 'edit_plugins' );
|
101 |
|
102 |
if ( defined( 'DISALLOW_FILE_EDIT' ) && ! apply_filters( 'aceide_override_disallow_file_edit', ! DISALLOW_FILE_EDIT ) ) {
|
103 |
wp_die( '<p>' . __( 'You do not have sufficient permissions to edit templates for this site. SORRY' ) . '</p>' );
|
142 |
}
|
143 |
|
144 |
public function add_admin_js() {
|
145 |
+
$plugin_path = trailingslashit( dirname( dirname( __FILE__ ) ) ) . 'AceIDE.php';
|
146 |
+
$plugin_url = trailingslashit( plugin_dir_url( $plugin_path ) );
|
147 |
+
|
148 |
+
$acever = $this->ace_version;
|
149 |
+
$idever = get_plugin_data( $plugin_path, false, false );
|
150 |
+
$idever = $idever['Version'];
|
151 |
|
152 |
// include file tree
|
153 |
+
wp_enqueue_script( 'jquery-file-tree', plugins_url( 'js/jqueryFileTree.js', __FILE__ ), array( 'jquery' ), $idever );
|
154 |
// include ace
|
155 |
+
wp_enqueue_script( 'ace', "{$plugin_url}src/js/ace-{$acever}/ace.js", array(), $idever );
|
156 |
// include ace modes for css, javascript & php
|
157 |
+
wp_enqueue_script( 'ace-mode-css', "{$plugin_url}src/js/ace-{$acever}/mode-css.js", array( 'ace' ), $idever );
|
158 |
+
wp_enqueue_script( 'ace-mode-less', "{$plugin_url}src/js/ace-{$acever}/mode-less.js", array( 'ace' ), $idever );
|
159 |
+
wp_enqueue_script( 'ace-mode-javascript', "{$plugin_url}src/js/ace-{$acever}/mode-javascript.js", array( 'ace' ), $idever );
|
160 |
+
wp_enqueue_script( 'ace-mode-php', "{$plugin_url}src/js/ace-{$acever}/mode-php.js", array( 'ace' ), $idever );
|
161 |
+
wp_enqueue_script( 'ace-mode-twig', "{$plugin_url}src/js/ace-{$acever}/mode-twig.js", array( 'ace' ), $idever );
|
162 |
// include ace theme
|
163 |
+
wp_enqueue_script( 'ace-theme', "{$plugin_url}src/js/ace-{$acever}/theme-dawn.js", array( 'ace' ), $idever ); // ambiance looks really nice for high contrast
|
164 |
// load emmet
|
165 |
+
wp_enqueue_script( 'aceide-ext-emmet', "{$plugin_url}src/js/ace-{$acever}/ext-emmet.js", array( 'ace' ), $idever );
|
166 |
+
wp_enqueue_script( 'aceide-emmet', "{$plugin_url}src/js/emmet.js", array( 'aceide-ext-emmet' ), $idever );
|
167 |
// wordpress-completion tags
|
168 |
+
wp_enqueue_script( 'aceide-wordpress-completion', "{$plugin_url}src/js/autocomplete/wordpress.js", array( 'ace' ), $idever );
|
169 |
// php-completion tags
|
170 |
+
wp_enqueue_script( 'aceide-php-completion', "{$plugin_url}src/js/autocomplete/php.js", array( 'ace' ), $idever );
|
171 |
// load editor
|
172 |
+
wp_enqueue_script( 'aceide-load-editor', "{$plugin_url}src/js/load-editor.js", array( 'ace', 'jquery', 'jquery-ui-core', 'jquery-ui-dialog' ), $idever );
|
173 |
// load filetree menu
|
174 |
+
wp_enqueue_script( 'aceide-load-filetree-menu', "{$plugin_url}src/js/load-filetree-menu.js", array( 'ace', 'jquery' ), $idever );
|
175 |
// load autocomplete dropdown
|
176 |
+
wp_enqueue_script( 'aceide-dd', "{$plugin_url}src/js/jquery.dd.js", array( 'ace', 'jquery' ), $idever );
|
177 |
|
178 |
// load color picker
|
179 |
+
wp_enqueue_script( 'ImageColorPicker', "{$plugin_url}src/js/ImageColorPicker.js", array( 'jquery', 'jquery-ui-core', 'jquery-ui-widget' ), $idever );
|
180 |
}
|
181 |
|
182 |
public function add_admin_styles() {
|
183 |
+
$plugin_path = trailingslashit( dirname( dirname( __FILE__ ) ) ) . 'AceIDE.php';
|
184 |
+
$plugin_url = trailingslashit( plugin_dir_url( $plugin_path ) );
|
185 |
+
|
186 |
+
$acever = $this->ace_version;
|
187 |
+
$idever = get_plugin_data( $plugin_path, false, false );
|
188 |
+
$idever = $idever['Version'];
|
189 |
+
|
190 |
// main AceIDE styles
|
191 |
+
wp_register_style( 'aceide_style', "{$plugin_url}src/aceide.css", array(), $idever );
|
192 |
wp_enqueue_style( 'aceide_style' );
|
193 |
// filetree styles
|
194 |
+
wp_register_style( 'aceide_filetree_style', "{$plugin_url}src/css/jqueryFileTree.css", array( 'aceide_style' ), $idever );
|
195 |
wp_enqueue_style( 'aceide_filetree_style' );
|
196 |
// autocomplete dropdown styles
|
197 |
+
wp_register_style( 'aceide_dd_style', "{$plugin_url}src/dd.css", array( 'aceide_style' ), $idever );
|
198 |
wp_enqueue_style( 'aceide_dd_style' );
|
199 |
|
200 |
// jquery ui styles
|
201 |
+
wp_register_style( 'aceide_jqueryui_style', "{$plugin_url}src/css/flick/jquery-ui-1.8.20.custom.css", array( 'aceide_style' ), $idever );
|
202 |
wp_enqueue_style( 'aceide_jqueryui_style' );
|
203 |
}
|
204 |
|
491 |
}
|
492 |
|
493 |
if ( version_compare( $wp_version, '3.8', '<' ) ) {
|
494 |
+
$this->menu_hook = add_menu_page( 'AceIDE', 'AceIDE', 'edit_plugins', "aceide", array( &$this, 'my_menu_page' ) );
|
495 |
} else {
|
496 |
+
$this->menu_hook = add_menu_page( 'AceIDE', 'AceIDE', 'edit_plugins', "aceide", array( &$this, 'my_menu_page' ), 'dashicons-editor-code' );
|
497 |
}
|
498 |
}
|
499 |
|
675 |
?>
|
676 |
<div id="poststuff" class="metabox-holder has-right-sidebar">
|
677 |
<div id="side-info-column" class="inner-sidebar">
|
678 |
+
<img src="<?php echo plugins_url( 'images/logo.png', __FILE__ ); ?>" id="aceidelogo" />
|
679 |
<div id="aceide_info">
|
680 |
<div id="aceide_info_content"></div>
|
681 |
</div>
|
714 |
</div>
|
715 |
|
716 |
<div id="post-body">
|
717 |
+
<div id="aceide_container">
|
718 |
+
<div id="aceide_toolbar" class="quicktags-toolbar">
|
719 |
+
<div id="aceide_toolbar_tabs"> </div>
|
720 |
+
<div id="dialog_window_minimized_container"></div>
|
721 |
+
</div>
|
722 |
+
|
723 |
+
<div id="aceide_toolbar_buttons">
|
724 |
+
<div id="aceide_message"></div>
|
725 |
+
<a class="button restore" style="display:none;" title="<?php esc_attr_e( 'Restore the active tab' ); ?>" href="#"><?php _e( 'Restore ✜' ); ?></a>
|
726 |
+
</div>
|
727 |
+
<div id='fancyeditordiv'></div>
|
728 |
+
<form id="aceide_save_container" action="" method="get">
|
729 |
+
<div id="aceide_footer_message"></div>
|
730 |
+
<div id="aceide_footer_message_last_saved"></div>
|
731 |
+
<div id="aceide_footer_message_unsaved"></div>
|
732 |
+
|
733 |
+
<a href="#" id="aceide_save" alt="<?php esc_attr_e( 'Keyboard shortcut to save [Ctrl/Cmd + S]' ); ?>" title="<?php esc_attr_e( 'Keyboard shortcut to save [Ctrl/Cmd + S]' ); ?>" class="button-primary"><?php esc_html_e( 'SAVE FILE' ); ?></a>
|
734 |
+
<?php if ( defined( 'WP_DEBUG' ) && WP_DEBUG ): ?>
|
735 |
+
<a href="#" id="aceide_git" alt="Open the Git overlay" title="Open the Git overlay" class="button-secondary"><?php esc_html_e( 'Git' ); ?></a>
|
736 |
+
<?php endif; ?>
|
737 |
+
<input type="hidden" id="filename" name="filename" value="" />
|
738 |
+
<?php
|
739 |
+
if ( function_exists( 'wp_nonce_field' ) ) {
|
740 |
+
wp_nonce_field('plugin-name-action_aceidenonce');
|
741 |
+
}
|
742 |
+
?>
|
743 |
+
</form>
|
744 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
745 |
</div>
|
746 |
</div>
|
747 |
<div id="editor_find_dialog" title="<?php esc_attr_e( 'Find...' ); ?>" style="padding: 0px; display: none;">
|
753 |
<?php endif; ?>
|
754 |
<form id="find-inline" style="position: relative; padding: 4px; margin: 0px; height: 100%; overflow: hidden; width: 400px;">
|
755 |
<label class="left"> <?php esc_html_e( 'Find' ); ?><input type="search" name="find" /></label>
|
756 |
+
<label class="left"> <?php esc_html_e( 'Replace' ); ?><input type="search" name="replacement" /></label>
|
757 |
<div class="clear" style="height: 33px;"></div>
|
758 |
|
759 |
<label><input type="checkbox" name="wrap" checked="checked" /> <?php esc_html_e( 'Wrap Around' ); ?></label>
|
src/Modules/FileOps.php
CHANGED
@@ -107,7 +107,7 @@ class FileOps implements Module
|
|
107 |
|
108 |
// set backup filename
|
109 |
$backup_path = 'backups' . preg_replace( "#\.php$#i", "_" . date( "Y-m-d-H" ) . ".php", $_POST['filename'] );
|
110 |
-
$backup_path_full = plugin_dir_path( __FILE__ ) . $backup_path;
|
111 |
// create backup directory if not there
|
112 |
$new_file_info = pathinfo( $backup_path_full );
|
113 |
|
@@ -117,7 +117,7 @@ class FileOps implements Module
|
|
117 |
|
118 |
if ( $is_php ) {
|
119 |
// create the backup file adding some php to the file to enable direct restore
|
120 |
-
|
121 |
$user_md5 = md5( serialize( $current_user ) );
|
122 |
|
123 |
$restore_php = '<?php /* start AceIDE restore code */
|
@@ -140,7 +140,7 @@ die();
|
|
140 |
// save file
|
141 |
if ( $wp_filesystem->put_contents( $file_name, stripslashes( $_POST['content'] ) ) ) {
|
142 |
// lets create an extra long nonce to make it less crackable
|
143 |
-
|
144 |
$user_md5 = md5( serialize( $current_user ) );
|
145 |
|
146 |
$result = "\"" . $backup_path . ":::" . $user_md5 . "\"";
|
107 |
|
108 |
// set backup filename
|
109 |
$backup_path = 'backups' . preg_replace( "#\.php$#i", "_" . date( "Y-m-d-H" ) . ".php", $_POST['filename'] );
|
110 |
+
$backup_path_full = plugin_dir_path( dirname( dirname( __FILE__ ) ) ) . $backup_path;
|
111 |
// create backup directory if not there
|
112 |
$new_file_info = pathinfo( $backup_path_full );
|
113 |
|
117 |
|
118 |
if ( $is_php ) {
|
119 |
// create the backup file adding some php to the file to enable direct restore
|
120 |
+
$current_user = wp_get_current_user();
|
121 |
$user_md5 = md5( serialize( $current_user ) );
|
122 |
|
123 |
$restore_php = '<?php /* start AceIDE restore code */
|
140 |
// save file
|
141 |
if ( $wp_filesystem->put_contents( $file_name, stripslashes( $_POST['content'] ) ) ) {
|
142 |
// lets create an extra long nonce to make it less crackable
|
143 |
+
$current_user = wp_get_current_user();
|
144 |
$user_md5 = md5( serialize( $current_user ) );
|
145 |
|
146 |
$result = "\"" . $backup_path . ":::" . $user_md5 . "\"";
|
src/aceide.css
CHANGED
@@ -5,6 +5,12 @@
|
|
5 |
}
|
6 |
|
7 |
#quicktags, #post-status-info, #editor-toolbar, #newcontent, .ace_print_margin { display: none; }
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
#fancyeditordiv {
|
9 |
position: relative;
|
10 |
width: 70%;
|
@@ -23,8 +29,20 @@
|
|
23 |
}
|
24 |
#template div{margin-right:0 !important;}
|
25 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
#aceide_toolbar{
|
27 |
-
width:
|
28 |
min-height: 30px;
|
29 |
text-align: right;
|
30 |
padding-top: 5px;
|
@@ -125,7 +143,7 @@
|
|
125 |
#aceide_toolbar_buttons {
|
126 |
position:relative;
|
127 |
min-height:30px;
|
128 |
-
width:
|
129 |
float:left;
|
130 |
clear:left;
|
131 |
text-align:left;
|
@@ -171,10 +189,10 @@
|
|
171 |
#aceide_save_container{
|
172 |
float: left;
|
173 |
clear: left;
|
174 |
-
width:
|
175 |
padding: 0.5%;
|
176 |
background-color: #E9E9E9;
|
177 |
-
|
178 |
border-color: #CCC;
|
179 |
-webkit-box-shadow: inset 0 1px 0 #fff;
|
180 |
box-shadow: inset 0 1px 0 #fff;
|
@@ -186,7 +204,6 @@
|
|
186 |
position: relative;
|
187 |
min-height: 30px;
|
188 |
width: 100%;
|
189 |
-
margin-top: 35px;
|
190 |
padding-right:2px;
|
191 |
float: right;
|
192 |
clear: right;
|
@@ -237,7 +254,7 @@
|
|
237 |
}
|
238 |
|
239 |
#fancyeditordiv{
|
240 |
-
width:
|
241 |
height:1000px;
|
242 |
margin-right:0!important;
|
243 |
float:left;
|
5 |
}
|
6 |
|
7 |
#quicktags, #post-status-info, #editor-toolbar, #newcontent, .ace_print_margin { display: none; }
|
8 |
+
#aceidelogo {
|
9 |
+
width: 111px;
|
10 |
+
height: 33px;
|
11 |
+
margin: -4px 7px 4px auto;
|
12 |
+
display: block;
|
13 |
+
}
|
14 |
#fancyeditordiv {
|
15 |
position: relative;
|
16 |
width: 70%;
|
29 |
}
|
30 |
#template div{margin-right:0 !important;}
|
31 |
|
32 |
+
#aceide_container {
|
33 |
+
width: 75%;
|
34 |
+
box-sizing: border-box;
|
35 |
+
}
|
36 |
+
|
37 |
+
#aceide_container.fullScreen {
|
38 |
+
width: 100%;
|
39 |
+
height: 100%;
|
40 |
+
padding: 20px;
|
41 |
+
background-color: #E9E9E9;
|
42 |
+
}
|
43 |
+
|
44 |
#aceide_toolbar{
|
45 |
+
width: 100%;
|
46 |
min-height: 30px;
|
47 |
text-align: right;
|
48 |
padding-top: 5px;
|
143 |
#aceide_toolbar_buttons {
|
144 |
position:relative;
|
145 |
min-height:30px;
|
146 |
+
width:100%;
|
147 |
float:left;
|
148 |
clear:left;
|
149 |
text-align:left;
|
189 |
#aceide_save_container{
|
190 |
float: left;
|
191 |
clear: left;
|
192 |
+
width: 100%;
|
193 |
padding: 0.5%;
|
194 |
background-color: #E9E9E9;
|
195 |
+
box-sizing: border-box;
|
196 |
border-color: #CCC;
|
197 |
-webkit-box-shadow: inset 0 1px 0 #fff;
|
198 |
box-shadow: inset 0 1px 0 #fff;
|
204 |
position: relative;
|
205 |
min-height: 30px;
|
206 |
width: 100%;
|
|
|
207 |
padding-right:2px;
|
208 |
float: right;
|
209 |
clear: right;
|
254 |
}
|
255 |
|
256 |
#fancyeditordiv{
|
257 |
+
width:100%;
|
258 |
height:1000px;
|
259 |
margin-right:0!important;
|
260 |
float:left;
|
src/images/logo.png
ADDED
Binary file
|
src/js/load-editor.js
CHANGED
@@ -16,6 +16,62 @@ var oHandler;
|
|
16 |
|
17 |
var editor_options = {resizer:{}};
|
18 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19 |
function onSessionChange(e) {
|
20 |
|
21 |
//set the document as unsaved
|
@@ -847,7 +903,7 @@ function display_editor_settings() {
|
|
847 |
resizable: false,
|
848 |
show: "fade",
|
849 |
close: load_editor_settings,
|
850 |
-
appendTo: jQuery("#
|
851 |
}).dialog("moveToTop");
|
852 |
}
|
853 |
|
@@ -866,7 +922,7 @@ function display_find_dialog() {
|
|
866 |
resizable: false,
|
867 |
show: "fade",
|
868 |
hide: "fade",
|
869 |
-
appendTo: jQuery("#
|
870 |
}).dialog("moveToTop");
|
871 |
|
872 |
}
|
@@ -878,7 +934,8 @@ function display_goto_dialog() {
|
|
878 |
width: "300",
|
879 |
resizable: false,
|
880 |
show: "fade",
|
881 |
-
hide: "fade"
|
|
|
882 |
});
|
883 |
}
|
884 |
|
@@ -995,7 +1052,7 @@ jQuery(document).ready(function($) {
|
|
995 |
var options = {};
|
996 |
|
997 |
var direction = jQuery( "#editor_find_dialog input[name='direction']" ).prop("checked");
|
998 |
-
var replacement = jQuery( "#editor_find_dialog input[name='
|
999 |
var start = editor.getSelectionRange().start;
|
1000 |
|
1001 |
|
@@ -1017,7 +1074,7 @@ jQuery(document).ready(function($) {
|
|
1017 |
var options = {};
|
1018 |
|
1019 |
var direction = jQuery( "#editor_find_dialog input[name='direction']" ).prop("checked");
|
1020 |
-
var replacement = jQuery( "#editor_find_dialog input[name='
|
1021 |
var start = editor.getSelectionRange().start;
|
1022 |
|
1023 |
options.needle = jQuery( "#editor_find_dialog input[name='find']" ).val();
|
@@ -1118,12 +1175,7 @@ jQuery(document).ready(function($) {
|
|
1118 |
//Key up command
|
1119 |
editor.commands.addCommand({
|
1120 |
name: "up",
|
1121 |
-
bindKey:
|
1122 |
-
win: "Up",
|
1123 |
-
mac: "Up",
|
1124 |
-
sender: "editor"
|
1125 |
-
},
|
1126 |
-
|
1127 |
exec: function(env, args, request) {
|
1128 |
if (oHandler && oHandler.visible() === 'block'){
|
1129 |
oHandler.previous();
|
@@ -1159,18 +1211,15 @@ jQuery(document).ready(function($) {
|
|
1159 |
*/
|
1160 |
editor.moveCursorTo(range.end.row-1, range.end.column);
|
1161 |
}
|
1162 |
-
}
|
|
|
1163 |
});
|
1164 |
|
1165 |
|
1166 |
//key down command
|
1167 |
editor.commands.addCommand({
|
1168 |
name: "down",
|
1169 |
-
bindKey:
|
1170 |
-
win: "Down",
|
1171 |
-
mac: "Down",
|
1172 |
-
sender: "editor"
|
1173 |
-
},
|
1174 |
exec: function(env, args, request) {
|
1175 |
|
1176 |
if (oHandler && oHandler.visible() === 'block'){
|
@@ -1191,19 +1240,16 @@ jQuery(document).ready(function($) {
|
|
1191 |
editor.clearSelection();
|
1192 |
editor.moveCursorTo(range.end.row +1, range.end.column);
|
1193 |
}
|
1194 |
-
}
|
|
|
1195 |
});
|
1196 |
|
1197 |
|
1198 |
-
|
1199 |
editor.commands.addCommand({
|
1200 |
name: "enter",
|
1201 |
-
bindKey:
|
1202 |
-
|
1203 |
-
|
1204 |
-
sender: "editor"
|
1205 |
-
},
|
1206 |
-
exec: selectACitem
|
1207 |
});
|
1208 |
|
1209 |
// save command:
|
@@ -1228,7 +1274,8 @@ jQuery(document).ready(function($) {
|
|
1228 |
exec: function() {
|
1229 |
var rows = editor.$getSelectedRows();
|
1230 |
editor.session.duplicateLines( rows.first, rows.last );
|
1231 |
-
}
|
|
|
1232 |
});
|
1233 |
|
1234 |
// delete line:
|
@@ -1242,36 +1289,22 @@ jQuery(document).ready(function($) {
|
|
1242 |
exec: function() {
|
1243 |
editor.removeLines();
|
1244 |
editor.selection.moveCursorUp();
|
1245 |
-
}
|
|
|
1246 |
});
|
1247 |
|
1248 |
// Move lines up
|
1249 |
editor.commands.addCommand({
|
1250 |
name: "shiftLinesUp",
|
1251 |
bindKey: {
|
1252 |
-
win: "",
|
1253 |
mac: "Command-Shift-Up",
|
1254 |
sender: "editor"
|
1255 |
},
|
1256 |
exec: function() {
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
|
1261 |
-
if ( !editor.selection.isEmpty() && ( editor.selection.anchor.row == editor.selection.lead.row ) ) {
|
1262 |
-
// Move selection down
|
1263 |
-
console.log(rows);
|
1264 |
-
rows.start.row++;
|
1265 |
-
rows.end.row++;
|
1266 |
-
rows.start.column = 0;
|
1267 |
-
rows.end.column = 0;
|
1268 |
-
|
1269 |
-
editor.selection.moveCursorUp();
|
1270 |
-
editor.selection.setSelectionRange( rows );
|
1271 |
-
} else {
|
1272 |
-
editor.selection.moveCursorUp();
|
1273 |
-
}
|
1274 |
-
}
|
1275 |
});
|
1276 |
|
1277 |
// Move lines down
|
@@ -1284,23 +1317,9 @@ jQuery(document).ready(function($) {
|
|
1284 |
},
|
1285 |
exec: function() {
|
1286 |
// Move rows down
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
if ( !editor.selection.isEmpty() && ( editor.selection.anchor.row == editor.selection.lead.row ) ) {
|
1291 |
-
// Move selection down
|
1292 |
-
console.log(rows);
|
1293 |
-
rows.start.row++;
|
1294 |
-
rows.end.row++;
|
1295 |
-
rows.start.column = 0;
|
1296 |
-
rows.end.column = 0;
|
1297 |
-
|
1298 |
-
editor.selection.moveCursorDown();
|
1299 |
-
editor.selection.setSelectionRange( rows );
|
1300 |
-
} else {
|
1301 |
-
editor.selection.moveCursorDown();
|
1302 |
-
}
|
1303 |
-
}
|
1304 |
});
|
1305 |
|
1306 |
// Show find dialog
|
@@ -1329,8 +1348,57 @@ jQuery(document).ready(function($) {
|
|
1329 |
}
|
1330 |
});
|
1331 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1332 |
//END COMMANDS
|
1333 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1334 |
|
1335 |
//click action for new directory/file submit link
|
1336 |
$("#aceide_create_new_directory, #aceide_create_new_file").click(function(e){
|
16 |
|
17 |
var editor_options = {resizer:{}};
|
18 |
|
19 |
+
// Fullscreen cross-browser fill
|
20 |
+
document.fullscreenEnabled = document.fullscreenEnabled ||
|
21 |
+
document.mozFullScreenEnabled ||
|
22 |
+
document.msFullscreenEnabled ||
|
23 |
+
document.documentElement.webkitRequestFullScreen;
|
24 |
+
|
25 |
+
function requestFullscreen(element) {
|
26 |
+
if (element.requestFullscreen) {
|
27 |
+
element.requestFullscreen();
|
28 |
+
return true;
|
29 |
+
} else if (element.mozRequestFullScreen) {
|
30 |
+
element.mozRequestFullScreen();
|
31 |
+
return true;
|
32 |
+
} else if (element.webkitRequestFullScreen) {
|
33 |
+
element.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);
|
34 |
+
return true;
|
35 |
+
} else if (element.msRequestFullscreen) {
|
36 |
+
element.msRequestFullscreen();
|
37 |
+
return true;
|
38 |
+
}
|
39 |
+
|
40 |
+
return false;
|
41 |
+
}
|
42 |
+
|
43 |
+
function fullscreenOnChange(cb) {
|
44 |
+
if (document.exitFullscreen) {
|
45 |
+
document.addEventListener('fullscreenchange', cb);
|
46 |
+
} else if (document.webkitExitFullscreen) {
|
47 |
+
document.addEventListener('webkitfullscreenchange', cb);
|
48 |
+
} else if (document.mozCancelFullScreen) {
|
49 |
+
document.addEventListener('mozfullscreenchange', cb);
|
50 |
+
} else if (document.msExitFullscreen) {
|
51 |
+
document.addEventListener('msfullscreenchange', cb);
|
52 |
+
}
|
53 |
+
}
|
54 |
+
|
55 |
+
function exitFullscreen() {
|
56 |
+
if (document.exitFullscreen) {
|
57 |
+
document.exitFullscreen();
|
58 |
+
} else if (document.mozCancelFullScreen) {
|
59 |
+
document.mozCancelFullScreen();
|
60 |
+
} else if (document.webkitExitFullscreen) {
|
61 |
+
document.webkitExitFullscreen();
|
62 |
+
} else if (document.msExitFullscreen) {
|
63 |
+
document.msExitFullscreen();
|
64 |
+
}
|
65 |
+
}
|
66 |
+
|
67 |
+
if (!document.hasOwnProperty('fullscreenElement')) {
|
68 |
+
Object.defineProperty(document, 'fullscreenElement', {
|
69 |
+
'get': function() {
|
70 |
+
return document.webkitFullscreenElement || document.mozFullscreenElement || document.msFullscreenElement || null;
|
71 |
+
}
|
72 |
+
});
|
73 |
+
}
|
74 |
+
|
75 |
function onSessionChange(e) {
|
76 |
|
77 |
//set the document as unsaved
|
903 |
resizable: false,
|
904 |
show: "fade",
|
905 |
close: load_editor_settings,
|
906 |
+
appendTo: jQuery("#aceide_container")
|
907 |
}).dialog("moveToTop");
|
908 |
}
|
909 |
|
922 |
resizable: false,
|
923 |
show: "fade",
|
924 |
hide: "fade",
|
925 |
+
appendTo: jQuery("#aceide_container")
|
926 |
}).dialog("moveToTop");
|
927 |
|
928 |
}
|
934 |
width: "300",
|
935 |
resizable: false,
|
936 |
show: "fade",
|
937 |
+
hide: "fade",
|
938 |
+
appendTo: jQuery("#aceide_container")
|
939 |
});
|
940 |
}
|
941 |
|
1052 |
var options = {};
|
1053 |
|
1054 |
var direction = jQuery( "#editor_find_dialog input[name='direction']" ).prop("checked");
|
1055 |
+
var replacement = jQuery( "#editor_find_dialog input[name='replacement']" ).val();
|
1056 |
var start = editor.getSelectionRange().start;
|
1057 |
|
1058 |
|
1074 |
var options = {};
|
1075 |
|
1076 |
var direction = jQuery( "#editor_find_dialog input[name='direction']" ).prop("checked");
|
1077 |
+
var replacement = jQuery( "#editor_find_dialog input[name='replacement']" ).val();
|
1078 |
var start = editor.getSelectionRange().start;
|
1079 |
|
1080 |
options.needle = jQuery( "#editor_find_dialog input[name='find']" ).val();
|
1175 |
//Key up command
|
1176 |
editor.commands.addCommand({
|
1177 |
name: "up",
|
1178 |
+
bindKey: "Up",
|
|
|
|
|
|
|
|
|
|
|
1179 |
exec: function(env, args, request) {
|
1180 |
if (oHandler && oHandler.visible() === 'block'){
|
1181 |
oHandler.previous();
|
1211 |
*/
|
1212 |
editor.moveCursorTo(range.end.row-1, range.end.column);
|
1213 |
}
|
1214 |
+
},
|
1215 |
+
scrollIntoView: "cursor"
|
1216 |
});
|
1217 |
|
1218 |
|
1219 |
//key down command
|
1220 |
editor.commands.addCommand({
|
1221 |
name: "down",
|
1222 |
+
bindKey: "Down",
|
|
|
|
|
|
|
|
|
1223 |
exec: function(env, args, request) {
|
1224 |
|
1225 |
if (oHandler && oHandler.visible() === 'block'){
|
1240 |
editor.clearSelection();
|
1241 |
editor.moveCursorTo(range.end.row +1, range.end.column);
|
1242 |
}
|
1243 |
+
},
|
1244 |
+
scrollIntoView: "cursor"
|
1245 |
});
|
1246 |
|
1247 |
|
|
|
1248 |
editor.commands.addCommand({
|
1249 |
name: "enter",
|
1250 |
+
bindKey: "Return",
|
1251 |
+
exec: selectACitem,
|
1252 |
+
scrollIntoView: "cursor"
|
|
|
|
|
|
|
1253 |
});
|
1254 |
|
1255 |
// save command:
|
1274 |
exec: function() {
|
1275 |
var rows = editor.$getSelectedRows();
|
1276 |
editor.session.duplicateLines( rows.first, rows.last );
|
1277 |
+
},
|
1278 |
+
scrollIntoView: "cursor"
|
1279 |
});
|
1280 |
|
1281 |
// delete line:
|
1289 |
exec: function() {
|
1290 |
editor.removeLines();
|
1291 |
editor.selection.moveCursorUp();
|
1292 |
+
},
|
1293 |
+
scrollIntoView: "cursor"
|
1294 |
});
|
1295 |
|
1296 |
// Move lines up
|
1297 |
editor.commands.addCommand({
|
1298 |
name: "shiftLinesUp",
|
1299 |
bindKey: {
|
1300 |
+
win: "Ctrl-Shift-Up",
|
1301 |
mac: "Command-Shift-Up",
|
1302 |
sender: "editor"
|
1303 |
},
|
1304 |
exec: function() {
|
1305 |
+
editor.moveLinesUp();
|
1306 |
+
},
|
1307 |
+
scrollIntoView: "cursor"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1308 |
});
|
1309 |
|
1310 |
// Move lines down
|
1317 |
},
|
1318 |
exec: function() {
|
1319 |
// Move rows down
|
1320 |
+
editor.moveLinesDown();
|
1321 |
+
},
|
1322 |
+
scrollIntoView: "cursor"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1323 |
});
|
1324 |
|
1325 |
// Show find dialog
|
1348 |
}
|
1349 |
});
|
1350 |
|
1351 |
+
editor.commands.addCommand({
|
1352 |
+
name: "escape",
|
1353 |
+
bindKey: "esc",
|
1354 |
+
exec: function(editor) {
|
1355 |
+
var element = editor.container.parentNode;
|
1356 |
+
|
1357 |
+
if (document.getElementById('ac').style.display === 'block') {
|
1358 |
+
aceide_close_autocomplete();
|
1359 |
+
return;
|
1360 |
+
}
|
1361 |
+
|
1362 |
+
if (document.fullscreenElement !== null) {
|
1363 |
+
element.className = element.className.replace(/\s?fullScreen/, '');
|
1364 |
+
exitFullscreen();
|
1365 |
+
editor.resize();
|
1366 |
+
return;
|
1367 |
+
}
|
1368 |
+
}
|
1369 |
+
});
|
1370 |
+
|
1371 |
+
editor.commands.addCommand({
|
1372 |
+
name: "toggleFullscreen",
|
1373 |
+
bindKey: "F11",
|
1374 |
+
exec: function(editor) {
|
1375 |
+
var element = editor.container.parentNode;
|
1376 |
+
|
1377 |
+
if (!requestFullscreen(element)) {
|
1378 |
+
alert("Could not open full screen.");
|
1379 |
+
}
|
1380 |
+
|
1381 |
+
element.className += ' fullScreen';
|
1382 |
+
editor.resize();
|
1383 |
+
}
|
1384 |
+
});
|
1385 |
//END COMMANDS
|
1386 |
|
1387 |
+
fullscreenOnChange(function() {
|
1388 |
+
if (document.fullscreenElement === null) {
|
1389 |
+
var element = document.getElementById("aceide_container");
|
1390 |
+
element.className = element.className.replace(/\s?fullScreen/, '');
|
1391 |
+
exitFullscreen();
|
1392 |
+
editor.resize();
|
1393 |
+
}
|
1394 |
+
});
|
1395 |
+
|
1396 |
+
window.addEventListener('keydown', function(e) {
|
1397 |
+
// Disable default fullscreen
|
1398 |
+
if (e.keyCode === 122) {
|
1399 |
+
e.preventDefault();
|
1400 |
+
}
|
1401 |
+
});
|
1402 |
|
1403 |
//click action for new directory/file submit link
|
1404 |
$("#aceide_create_new_directory, #aceide_create_new_file").click(function(e){
|
src/js/load-filetree-menu.js
CHANGED
@@ -52,7 +52,7 @@ function display_context_menu(e) {
|
|
52 |
.attr("class", "menu-item-rename")
|
53 |
.text("Rename")
|
54 |
.on("click", function() {
|
55 |
-
aceide_rename_file($this.attr("rel")
|
56 |
});
|
57 |
|
58 |
return $item;
|
@@ -63,7 +63,7 @@ function display_context_menu(e) {
|
|
63 |
.attr("class", "menu-item-delete")
|
64 |
.text("Delete")
|
65 |
.on("click", function() {
|
66 |
-
aceide_delete_file($this.attr("rel")
|
67 |
});
|
68 |
|
69 |
return $item;
|
@@ -75,7 +75,7 @@ function display_context_menu(e) {
|
|
75 |
.attr("class", "menu-item-upload")
|
76 |
.text("Upload")
|
77 |
.on("click", function() {
|
78 |
-
aceide_upload_file($this.attr("rel")
|
79 |
});
|
80 |
|
81 |
return $item;
|
@@ -86,7 +86,7 @@ function display_context_menu(e) {
|
|
86 |
.attr("class", "menu-item-download")
|
87 |
.text("Download")
|
88 |
.on("click", function() {
|
89 |
-
aceide_download_file($this.attr("rel")
|
90 |
});
|
91 |
|
92 |
return $item;
|
@@ -99,7 +99,9 @@ function display_context_menu(e) {
|
|
99 |
.attr("class", "menu-item-zip")
|
100 |
.text("Zip")
|
101 |
.on("click", function() {
|
102 |
-
|
|
|
|
|
103 |
});
|
104 |
|
105 |
return $item;
|
@@ -110,7 +112,9 @@ function display_context_menu(e) {
|
|
110 |
.attr("class", "menu-item-unzip")
|
111 |
.text("Unzip")
|
112 |
.on("click", function() {
|
113 |
-
|
|
|
|
|
114 |
});
|
115 |
|
116 |
return $item;
|
@@ -304,6 +308,8 @@ function aceide_zip_file(file, callback_func) {
|
|
304 |
} else {
|
305 |
jQuery("ul.jqueryFileTree a[rel='"+ folder +"']").click().click();
|
306 |
}
|
|
|
|
|
307 |
});
|
308 |
}
|
309 |
|
@@ -323,6 +329,8 @@ function aceide_unzip_file(file, callback_func) {
|
|
323 |
} else {
|
324 |
jQuery("ul.jqueryFileTree a[rel='"+ folder +"']").click().click();
|
325 |
}
|
|
|
|
|
326 |
});
|
327 |
}
|
328 |
|
52 |
.attr("class", "menu-item-rename")
|
53 |
.text("Rename")
|
54 |
.on("click", function() {
|
55 |
+
aceide_rename_file($this.attr("rel"));
|
56 |
});
|
57 |
|
58 |
return $item;
|
63 |
.attr("class", "menu-item-delete")
|
64 |
.text("Delete")
|
65 |
.on("click", function() {
|
66 |
+
aceide_delete_file($this.attr("rel"));
|
67 |
});
|
68 |
|
69 |
return $item;
|
75 |
.attr("class", "menu-item-upload")
|
76 |
.text("Upload")
|
77 |
.on("click", function() {
|
78 |
+
aceide_upload_file($this.attr("rel"));
|
79 |
});
|
80 |
|
81 |
return $item;
|
86 |
.attr("class", "menu-item-download")
|
87 |
.text("Download")
|
88 |
.on("click", function() {
|
89 |
+
aceide_download_file($this.attr("rel"));
|
90 |
});
|
91 |
|
92 |
return $item;
|
99 |
.attr("class", "menu-item-zip")
|
100 |
.text("Zip")
|
101 |
.on("click", function() {
|
102 |
+
if (confirm("We are going to zip this file or directory:\n" + $this.attr("rel") + "\n\nContinue?")) {
|
103 |
+
aceide_zip_file($this.attr("rel"));
|
104 |
+
}
|
105 |
});
|
106 |
|
107 |
return $item;
|
112 |
.attr("class", "menu-item-unzip")
|
113 |
.text("Unzip")
|
114 |
.on("click", function() {
|
115 |
+
if (confirm("We are going to unzip this zip file:\n" + $this.attr("rel") + "\n\nContinue?")) {
|
116 |
+
aceide_unzip_file($this.attr("rel"));
|
117 |
+
}
|
118 |
});
|
119 |
|
120 |
return $item;
|
308 |
} else {
|
309 |
jQuery("ul.jqueryFileTree a[rel='"+ folder +"']").click().click();
|
310 |
}
|
311 |
+
|
312 |
+
callback_func && callback_func();
|
313 |
});
|
314 |
}
|
315 |
|
329 |
} else {
|
330 |
jQuery("ul.jqueryFileTree a[rel='"+ folder +"']").click().click();
|
331 |
}
|
332 |
+
|
333 |
+
callback_func && callback_func();
|
334 |
});
|
335 |
}
|
336 |
|
vendor/composer/ClassLoader.php
CHANGED
@@ -53,8 +53,8 @@ class ClassLoader
|
|
53 |
|
54 |
private $useIncludePath = false;
|
55 |
private $classMap = array();
|
56 |
-
|
57 |
private $classMapAuthoritative = false;
|
|
|
58 |
|
59 |
public function getPrefixes()
|
60 |
{
|
@@ -322,20 +322,20 @@ class ClassLoader
|
|
322 |
if (isset($this->classMap[$class])) {
|
323 |
return $this->classMap[$class];
|
324 |
}
|
325 |
-
if ($this->classMapAuthoritative) {
|
326 |
return false;
|
327 |
}
|
328 |
|
329 |
$file = $this->findFileWithExtension($class, '.php');
|
330 |
|
331 |
// Search for Hack files if we are running on HHVM
|
332 |
-
if (
|
333 |
$file = $this->findFileWithExtension($class, '.hh');
|
334 |
}
|
335 |
|
336 |
-
if (
|
337 |
// Remember that this class does not exist.
|
338 |
-
|
339 |
}
|
340 |
|
341 |
return $file;
|
@@ -399,6 +399,8 @@ class ClassLoader
|
|
399 |
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
|
400 |
return $file;
|
401 |
}
|
|
|
|
|
402 |
}
|
403 |
}
|
404 |
|
53 |
|
54 |
private $useIncludePath = false;
|
55 |
private $classMap = array();
|
|
|
56 |
private $classMapAuthoritative = false;
|
57 |
+
private $missingClasses = array();
|
58 |
|
59 |
public function getPrefixes()
|
60 |
{
|
322 |
if (isset($this->classMap[$class])) {
|
323 |
return $this->classMap[$class];
|
324 |
}
|
325 |
+
if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
|
326 |
return false;
|
327 |
}
|
328 |
|
329 |
$file = $this->findFileWithExtension($class, '.php');
|
330 |
|
331 |
// Search for Hack files if we are running on HHVM
|
332 |
+
if (false === $file && defined('HHVM_VERSION')) {
|
333 |
$file = $this->findFileWithExtension($class, '.hh');
|
334 |
}
|
335 |
|
336 |
+
if (false === $file) {
|
337 |
// Remember that this class does not exist.
|
338 |
+
$this->missingClasses[$class] = true;
|
339 |
}
|
340 |
|
341 |
return $file;
|
399 |
if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
|
400 |
return $file;
|
401 |
}
|
402 |
+
|
403 |
+
return false;
|
404 |
}
|
405 |
}
|
406 |
|
vendor/composer/LICENSE
CHANGED
@@ -1,433 +1,21 @@
|
|
1 |
-
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
2 |
-
Upstream-Name: Composer
|
3 |
-
Upstream-Contact: Jordi Boggiano <j.boggiano@seld.be>
|
4 |
-
Source: https://github.com/composer/composer
|
5 |
|
6 |
-
|
7 |
-
Copyright: 2016, Nils Adermann <naderman@naderman.de>
|
8 |
-
2016, Jordi Boggiano <j.boggiano@seld.be>
|
9 |
-
License: Expat
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
|
|
|
|
|
|
14 |
|
15 |
-
|
16 |
-
|
17 |
-
Copyright: 2016, Nils Adermann <naderman@naderman.de>
|
18 |
-
2016, Jordi Boggiano <j.boggiano@seld.be>
|
19 |
-
2013, Evan Coury <me@evancoury.com>
|
20 |
-
License: Expat and BSD-2-Clause
|
21 |
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
.
|
29 |
-
* Redistributions in binary form must reproduce the above copyright notice,
|
30 |
-
this list of conditions and the following disclaimer in the documentation
|
31 |
-
and/or other materials provided with the distribution.
|
32 |
-
.
|
33 |
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
34 |
-
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
35 |
-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
36 |
-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
37 |
-
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
38 |
-
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
39 |
-
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
40 |
-
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
41 |
-
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
42 |
-
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
43 |
|
44 |
-
License: Expat
|
45 |
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
46 |
-
of this software and associated documentation files (the "Software"), to deal
|
47 |
-
in the Software without restriction, including without limitation the rights
|
48 |
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
49 |
-
copies of the Software, and to permit persons to whom the Software is furnished
|
50 |
-
to do so, subject to the following conditions:
|
51 |
-
.
|
52 |
-
The above copyright notice and this permission notice shall be included in all
|
53 |
-
copies or substantial portions of the Software.
|
54 |
-
.
|
55 |
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
56 |
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
57 |
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
58 |
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
59 |
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
60 |
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
61 |
-
THE SOFTWARE.
|
62 |
-
|
63 |
-
License: MPL-2.0
|
64 |
-
1. Definitions
|
65 |
-
--------------
|
66 |
-
.
|
67 |
-
1.1. "Contributor"
|
68 |
-
means each individual or legal entity that creates, contributes to
|
69 |
-
the creation of, or owns Covered Software.
|
70 |
-
.
|
71 |
-
1.2. "Contributor Version"
|
72 |
-
means the combination of the Contributions of others (if any) used
|
73 |
-
by a Contributor and that particular Contributor's Contribution.
|
74 |
-
.
|
75 |
-
1.3. "Contribution"
|
76 |
-
means Covered Software of a particular Contributor.
|
77 |
-
.
|
78 |
-
1.4. "Covered Software"
|
79 |
-
means Source Code Form to which the initial Contributor has attached
|
80 |
-
the notice in Exhibit A, the Executable Form of such Source Code
|
81 |
-
Form, and Modifications of such Source Code Form, in each case
|
82 |
-
including portions thereof.
|
83 |
-
.
|
84 |
-
1.5. "Incompatible With Secondary Licenses"
|
85 |
-
means
|
86 |
-
.
|
87 |
-
(a) that the initial Contributor has attached the notice described
|
88 |
-
in Exhibit B to the Covered Software; or
|
89 |
-
.
|
90 |
-
(b) that the Covered Software was made available under the terms of
|
91 |
-
version 1.1 or earlier of the License, but not also under the
|
92 |
-
terms of a Secondary License.
|
93 |
-
.
|
94 |
-
1.6. "Executable Form"
|
95 |
-
means any form of the work other than Source Code Form.
|
96 |
-
.
|
97 |
-
1.7. "Larger Work"
|
98 |
-
means a work that combines Covered Software with other material, in
|
99 |
-
a separate file or files, that is not Covered Software.
|
100 |
-
.
|
101 |
-
1.8. "License"
|
102 |
-
means this document.
|
103 |
-
.
|
104 |
-
1.9. "Licensable"
|
105 |
-
means having the right to grant, to the maximum extent possible,
|
106 |
-
whether at the time of the initial grant or subsequently, any and
|
107 |
-
all of the rights conveyed by this License.
|
108 |
-
.
|
109 |
-
1.10. "Modifications"
|
110 |
-
means any of the following:
|
111 |
-
.
|
112 |
-
(a) any file in Source Code Form that results from an addition to,
|
113 |
-
deletion from, or modification of the contents of Covered
|
114 |
-
Software; or
|
115 |
-
.
|
116 |
-
(b) any new file in Source Code Form that contains any Covered
|
117 |
-
Software.
|
118 |
-
.
|
119 |
-
1.11. "Patent Claims" of a Contributor
|
120 |
-
means any patent claim(s), including without limitation, method,
|
121 |
-
process, and apparatus claims, in any patent Licensable by such
|
122 |
-
Contributor that would be infringed, but for the grant of the
|
123 |
-
License, by the making, using, selling, offering for sale, having
|
124 |
-
made, import, or transfer of either its Contributions or its
|
125 |
-
Contributor Version.
|
126 |
-
.
|
127 |
-
1.12. "Secondary License"
|
128 |
-
means either the GNU General Public License, Version 2.0, the GNU
|
129 |
-
Lesser General Public License, Version 2.1, the GNU Affero General
|
130 |
-
Public License, Version 3.0, or any later versions of those
|
131 |
-
licenses.
|
132 |
-
.
|
133 |
-
1.13. "Source Code Form"
|
134 |
-
means the form of the work preferred for making modifications.
|
135 |
-
.
|
136 |
-
1.14. "You" (or "Your")
|
137 |
-
means an individual or a legal entity exercising rights under this
|
138 |
-
License. For legal entities, "You" includes any entity that
|
139 |
-
controls, is controlled by, or is under common control with You. For
|
140 |
-
purposes of this definition, "control" means (a) the power, direct
|
141 |
-
or indirect, to cause the direction or management of such entity,
|
142 |
-
whether by contract or otherwise, or (b) ownership of more than
|
143 |
-
fifty percent (50%) of the outstanding shares or beneficial
|
144 |
-
ownership of such entity.
|
145 |
-
.
|
146 |
-
2. License Grants and Conditions
|
147 |
-
--------------------------------
|
148 |
-
.
|
149 |
-
2.1. Grants
|
150 |
-
.
|
151 |
-
Each Contributor hereby grants You a world-wide, royalty-free,
|
152 |
-
non-exclusive license:
|
153 |
-
.
|
154 |
-
(a) under intellectual property rights (other than patent or trademark)
|
155 |
-
Licensable by such Contributor to use, reproduce, make available,
|
156 |
-
modify, display, perform, distribute, and otherwise exploit its
|
157 |
-
Contributions, either on an unmodified basis, with Modifications, or
|
158 |
-
as part of a Larger Work; and
|
159 |
-
.
|
160 |
-
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
161 |
-
for sale, have made, import, and otherwise transfer either its
|
162 |
-
Contributions or its Contributor Version.
|
163 |
-
.
|
164 |
-
2.2. Effective Date
|
165 |
-
.
|
166 |
-
The licenses granted in Section 2.1 with respect to any Contribution
|
167 |
-
become effective for each Contribution on the date the Contributor first
|
168 |
-
distributes such Contribution.
|
169 |
-
.
|
170 |
-
2.3. Limitations on Grant Scope
|
171 |
-
.
|
172 |
-
The licenses granted in this Section 2 are the only rights granted under
|
173 |
-
this License. No additional rights or licenses will be implied from the
|
174 |
-
distribution or licensing of Covered Software under this License.
|
175 |
-
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
176 |
-
Contributor:
|
177 |
-
.
|
178 |
-
(a) for any code that a Contributor has removed from Covered Software;
|
179 |
-
or
|
180 |
-
.
|
181 |
-
(b) for infringements caused by: (i) Your and any other third party's
|
182 |
-
modifications of Covered Software, or (ii) the combination of its
|
183 |
-
Contributions with other software (except as part of its Contributor
|
184 |
-
Version); or
|
185 |
-
.
|
186 |
-
(c) under Patent Claims infringed by Covered Software in the absence of
|
187 |
-
its Contributions.
|
188 |
-
.
|
189 |
-
This License does not grant any rights in the trademarks, service marks,
|
190 |
-
or logos of any Contributor (except as may be necessary to comply with
|
191 |
-
the notice requirements in Section 3.4).
|
192 |
-
.
|
193 |
-
2.4. Subsequent Licenses
|
194 |
-
.
|
195 |
-
No Contributor makes additional grants as a result of Your choice to
|
196 |
-
distribute the Covered Software under a subsequent version of this
|
197 |
-
License (see Section 10.2) or under the terms of a Secondary License (if
|
198 |
-
permitted under the terms of Section 3.3).
|
199 |
-
.
|
200 |
-
2.5. Representation
|
201 |
-
.
|
202 |
-
Each Contributor represents that the Contributor believes its
|
203 |
-
Contributions are its original creation(s) or it has sufficient rights
|
204 |
-
to grant the rights to its Contributions conveyed by this License.
|
205 |
-
.
|
206 |
-
2.6. Fair Use
|
207 |
-
.
|
208 |
-
This License is not intended to limit any rights You have under
|
209 |
-
applicable copyright doctrines of fair use, fair dealing, or other
|
210 |
-
equivalents.
|
211 |
-
.
|
212 |
-
2.7. Conditions
|
213 |
-
.
|
214 |
-
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
215 |
-
in Section 2.1.
|
216 |
-
.
|
217 |
-
3. Responsibilities
|
218 |
-
-------------------
|
219 |
-
.
|
220 |
-
3.1. Distribution of Source Form
|
221 |
-
.
|
222 |
-
All distribution of Covered Software in Source Code Form, including any
|
223 |
-
Modifications that You create or to which You contribute, must be under
|
224 |
-
the terms of this License. You must inform recipients that the Source
|
225 |
-
Code Form of the Covered Software is governed by the terms of this
|
226 |
-
License, and how they can obtain a copy of this License. You may not
|
227 |
-
attempt to alter or restrict the recipients' rights in the Source Code
|
228 |
-
Form.
|
229 |
-
.
|
230 |
-
3.2. Distribution of Executable Form
|
231 |
-
.
|
232 |
-
If You distribute Covered Software in Executable Form then:
|
233 |
-
.
|
234 |
-
(a) such Covered Software must also be made available in Source Code
|
235 |
-
Form, as described in Section 3.1, and You must inform recipients of
|
236 |
-
the Executable Form how they can obtain a copy of such Source Code
|
237 |
-
Form by reasonable means in a timely manner, at a charge no more
|
238 |
-
than the cost of distribution to the recipient; and
|
239 |
-
.
|
240 |
-
(b) You may distribute such Executable Form under the terms of this
|
241 |
-
License, or sublicense it under different terms, provided that the
|
242 |
-
license for the Executable Form does not attempt to limit or alter
|
243 |
-
the recipients' rights in the Source Code Form under this License.
|
244 |
-
.
|
245 |
-
3.3. Distribution of a Larger Work
|
246 |
-
.
|
247 |
-
You may create and distribute a Larger Work under terms of Your choice,
|
248 |
-
provided that You also comply with the requirements of this License for
|
249 |
-
the Covered Software. If the Larger Work is a combination of Covered
|
250 |
-
Software with a work governed by one or more Secondary Licenses, and the
|
251 |
-
Covered Software is not Incompatible With Secondary Licenses, this
|
252 |
-
License permits You to additionally distribute such Covered Software
|
253 |
-
under the terms of such Secondary License(s), so that the recipient of
|
254 |
-
the Larger Work may, at their option, further distribute the Covered
|
255 |
-
Software under the terms of either this License or such Secondary
|
256 |
-
License(s).
|
257 |
-
.
|
258 |
-
3.4. Notices
|
259 |
-
.
|
260 |
-
You may not remove or alter the substance of any license notices
|
261 |
-
(including copyright notices, patent notices, disclaimers of warranty,
|
262 |
-
or limitations of liability) contained within the Source Code Form of
|
263 |
-
the Covered Software, except that You may alter any license notices to
|
264 |
-
the extent required to remedy known factual inaccuracies.
|
265 |
-
.
|
266 |
-
3.5. Application of Additional Terms
|
267 |
-
.
|
268 |
-
You may choose to offer, and to charge a fee for, warranty, support,
|
269 |
-
indemnity or liability obligations to one or more recipients of Covered
|
270 |
-
Software. However, You may do so only on Your own behalf, and not on
|
271 |
-
behalf of any Contributor. You must make it absolutely clear that any
|
272 |
-
such warranty, support, indemnity, or liability obligation is offered by
|
273 |
-
You alone, and You hereby agree to indemnify every Contributor for any
|
274 |
-
liability incurred by such Contributor as a result of warranty, support,
|
275 |
-
indemnity or liability terms You offer. You may include additional
|
276 |
-
disclaimers of warranty and limitations of liability specific to any
|
277 |
-
jurisdiction.
|
278 |
-
.
|
279 |
-
4. Inability to Comply Due to Statute or Regulation
|
280 |
-
---------------------------------------------------
|
281 |
-
.
|
282 |
-
If it is impossible for You to comply with any of the terms of this
|
283 |
-
License with respect to some or all of the Covered Software due to
|
284 |
-
statute, judicial order, or regulation then You must: (a) comply with
|
285 |
-
the terms of this License to the maximum extent possible; and (b)
|
286 |
-
describe the limitations and the code they affect. Such description must
|
287 |
-
be placed in a text file included with all distributions of the Covered
|
288 |
-
Software under this License. Except to the extent prohibited by statute
|
289 |
-
or regulation, such description must be sufficiently detailed for a
|
290 |
-
recipient of ordinary skill to be able to understand it.
|
291 |
-
.
|
292 |
-
5. Termination
|
293 |
-
--------------
|
294 |
-
.
|
295 |
-
5.1. The rights granted under this License will terminate automatically
|
296 |
-
if You fail to comply with any of its terms. However, if You become
|
297 |
-
compliant, then the rights granted under this License from a particular
|
298 |
-
Contributor are reinstated (a) provisionally, unless and until such
|
299 |
-
Contributor explicitly and finally terminates Your grants, and (b) on an
|
300 |
-
ongoing basis, if such Contributor fails to notify You of the
|
301 |
-
non-compliance by some reasonable means prior to 60 days after You have
|
302 |
-
come back into compliance. Moreover, Your grants from a particular
|
303 |
-
Contributor are reinstated on an ongoing basis if such Contributor
|
304 |
-
notifies You of the non-compliance by some reasonable means, this is the
|
305 |
-
first time You have received notice of non-compliance with this License
|
306 |
-
from such Contributor, and You become compliant prior to 30 days after
|
307 |
-
Your receipt of the notice.
|
308 |
-
.
|
309 |
-
5.2. If You initiate litigation against any entity by asserting a patent
|
310 |
-
infringement claim (excluding declaratory judgment actions,
|
311 |
-
counter-claims, and cross-claims) alleging that a Contributor Version
|
312 |
-
directly or indirectly infringes any patent, then the rights granted to
|
313 |
-
You by any and all Contributors for the Covered Software under Section
|
314 |
-
2.1 of this License shall terminate.
|
315 |
-
.
|
316 |
-
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
317 |
-
end user license agreements (excluding distributors and resellers) which
|
318 |
-
have been validly granted by You or Your distributors under this License
|
319 |
-
prior to termination shall survive termination.
|
320 |
-
.
|
321 |
-
************************************************************************
|
322 |
-
* *
|
323 |
-
* 6. Disclaimer of Warranty *
|
324 |
-
* ------------------------- *
|
325 |
-
* *
|
326 |
-
* Covered Software is provided under this License on an "as is" *
|
327 |
-
* basis, without warranty of any kind, either expressed, implied, or *
|
328 |
-
* statutory, including, without limitation, warranties that the *
|
329 |
-
* Covered Software is free of defects, merchantable, fit for a *
|
330 |
-
* particular purpose or non-infringing. The entire risk as to the *
|
331 |
-
* quality and performance of the Covered Software is with You. *
|
332 |
-
* Should any Covered Software prove defective in any respect, You *
|
333 |
-
* (not any Contributor) assume the cost of any necessary servicing, *
|
334 |
-
* repair, or correction. This disclaimer of warranty constitutes an *
|
335 |
-
* essential part of this License. No use of any Covered Software is *
|
336 |
-
* authorized under this License except under this disclaimer. *
|
337 |
-
* *
|
338 |
-
************************************************************************
|
339 |
-
.
|
340 |
-
************************************************************************
|
341 |
-
* *
|
342 |
-
* 7. Limitation of Liability *
|
343 |
-
* -------------------------- *
|
344 |
-
* *
|
345 |
-
* Under no circumstances and under no legal theory, whether tort *
|
346 |
-
* (including negligence), contract, or otherwise, shall any *
|
347 |
-
* Contributor, or anyone who distributes Covered Software as *
|
348 |
-
* permitted above, be liable to You for any direct, indirect, *
|
349 |
-
* special, incidental, or consequential damages of any character *
|
350 |
-
* including, without limitation, damages for lost profits, loss of *
|
351 |
-
* goodwill, work stoppage, computer failure or malfunction, or any *
|
352 |
-
* and all other commercial damages or losses, even if such party *
|
353 |
-
* shall have been informed of the possibility of such damages. This *
|
354 |
-
* limitation of liability shall not apply to liability for death or *
|
355 |
-
* personal injury resulting from such party's negligence to the *
|
356 |
-
* extent applicable law prohibits such limitation. Some *
|
357 |
-
* jurisdictions do not allow the exclusion or limitation of *
|
358 |
-
* incidental or consequential damages, so this exclusion and *
|
359 |
-
* limitation may not apply to You. *
|
360 |
-
* *
|
361 |
-
************************************************************************
|
362 |
-
.
|
363 |
-
8. Litigation
|
364 |
-
-------------
|
365 |
-
.
|
366 |
-
Any litigation relating to this License may be brought only in the
|
367 |
-
courts of a jurisdiction where the defendant maintains its principal
|
368 |
-
place of business and such litigation shall be governed by laws of that
|
369 |
-
jurisdiction, without reference to its conflict-of-law provisions.
|
370 |
-
Nothing in this Section shall prevent a party's ability to bring
|
371 |
-
cross-claims or counter-claims.
|
372 |
-
.
|
373 |
-
9. Miscellaneous
|
374 |
-
----------------
|
375 |
-
.
|
376 |
-
This License represents the complete agreement concerning the subject
|
377 |
-
matter hereof. If any provision of this License is held to be
|
378 |
-
unenforceable, such provision shall be reformed only to the extent
|
379 |
-
necessary to make it enforceable. Any law or regulation which provides
|
380 |
-
that the language of a contract shall be construed against the drafter
|
381 |
-
shall not be used to construe this License against a Contributor.
|
382 |
-
.
|
383 |
-
10. Versions of the License
|
384 |
-
---------------------------
|
385 |
-
.
|
386 |
-
10.1. New Versions
|
387 |
-
.
|
388 |
-
Mozilla Foundation is the license steward. Except as provided in Section
|
389 |
-
10.3, no one other than the license steward has the right to modify or
|
390 |
-
publish new versions of this License. Each version will be given a
|
391 |
-
distinguishing version number.
|
392 |
-
.
|
393 |
-
10.2. Effect of New Versions
|
394 |
-
.
|
395 |
-
You may distribute the Covered Software under the terms of the version
|
396 |
-
of the License under which You originally received the Covered Software,
|
397 |
-
or under the terms of any subsequent version published by the license
|
398 |
-
steward.
|
399 |
-
.
|
400 |
-
10.3. Modified Versions
|
401 |
-
.
|
402 |
-
If you create software not governed by this License, and you want to
|
403 |
-
create a new license for such software, you may create and use a
|
404 |
-
modified version of this License if you rename the license and remove
|
405 |
-
any references to the name of the license steward (except to note that
|
406 |
-
such modified license differs from this License).
|
407 |
-
.
|
408 |
-
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
409 |
-
Licenses
|
410 |
-
.
|
411 |
-
If You choose to distribute Source Code Form that is Incompatible With
|
412 |
-
Secondary Licenses under the terms of this version of the License, the
|
413 |
-
notice described in Exhibit B of this License must be attached.
|
414 |
-
.
|
415 |
-
Exhibit A - Source Code Form License Notice
|
416 |
-
-------------------------------------------
|
417 |
-
.
|
418 |
-
This Source Code Form is subject to the terms of the Mozilla Public
|
419 |
-
License, v. 2.0. If a copy of the MPL was not distributed with this
|
420 |
-
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
421 |
-
.
|
422 |
-
If it is not possible or desirable to put the notice in a particular
|
423 |
-
file, then You may include the notice in a location (such as a LICENSE
|
424 |
-
file in a relevant directory) where a recipient would be likely to look
|
425 |
-
for such a notice.
|
426 |
-
.
|
427 |
-
You may add additional accurate notices of copyright ownership.
|
428 |
-
.
|
429 |
-
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
430 |
-
---------------------------------------------------------
|
431 |
-
.
|
432 |
-
This Source Code Form is "Incompatible With Secondary Licenses", as
|
433 |
-
defined by the Mozilla Public License, v. 2.0.
|
|
|
|
|
|
|
|
|
1 |
|
2 |
+
Copyright (c) 2016 Nils Adermann, Jordi Boggiano
|
|
|
|
|
|
|
3 |
|
4 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
5 |
+
of this software and associated documentation files (the "Software"), to deal
|
6 |
+
in the Software without restriction, including without limitation the rights
|
7 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8 |
+
copies of the Software, and to permit persons to whom the Software is furnished
|
9 |
+
to do so, subject to the following conditions:
|
10 |
|
11 |
+
The above copyright notice and this permission notice shall be included in all
|
12 |
+
copies or substantial portions of the Software.
|
|
|
|
|
|
|
|
|
13 |
|
14 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
20 |
+
THE SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/composer/autoload_real.php
CHANGED
@@ -23,24 +23,35 @@ class ComposerAutoloaderInit4c3174ac4bf370c3acc8c379bef0ab9a
|
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
spl_autoload_unregister(array('ComposerAutoloaderInit4c3174ac4bf370c3acc8c379bef0ab9a', 'loadClassLoader'));
|
25 |
|
26 |
-
$
|
27 |
-
|
28 |
-
|
29 |
-
}
|
30 |
|
31 |
-
|
32 |
-
|
33 |
-
$
|
34 |
-
|
|
|
|
|
35 |
|
36 |
-
|
37 |
-
|
38 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
39 |
}
|
40 |
|
41 |
$loader->register(true);
|
42 |
|
43 |
-
$
|
|
|
|
|
|
|
|
|
44 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
45 |
composerRequire4c3174ac4bf370c3acc8c379bef0ab9a($fileIdentifier, $file);
|
46 |
}
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
spl_autoload_unregister(array('ComposerAutoloaderInit4c3174ac4bf370c3acc8c379bef0ab9a', 'loadClassLoader'));
|
25 |
|
26 |
+
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
|
27 |
+
if ($useStaticLoader) {
|
28 |
+
require_once __DIR__ . '/autoload_static.php';
|
|
|
29 |
|
30 |
+
call_user_func(\Composer\Autoload\ComposerStaticInit4c3174ac4bf370c3acc8c379bef0ab9a::getInitializer($loader));
|
31 |
+
} else {
|
32 |
+
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
+
foreach ($map as $namespace => $path) {
|
34 |
+
$loader->set($namespace, $path);
|
35 |
+
}
|
36 |
|
37 |
+
$map = require __DIR__ . '/autoload_psr4.php';
|
38 |
+
foreach ($map as $namespace => $path) {
|
39 |
+
$loader->setPsr4($namespace, $path);
|
40 |
+
}
|
41 |
+
|
42 |
+
$classMap = require __DIR__ . '/autoload_classmap.php';
|
43 |
+
if ($classMap) {
|
44 |
+
$loader->addClassMap($classMap);
|
45 |
+
}
|
46 |
}
|
47 |
|
48 |
$loader->register(true);
|
49 |
|
50 |
+
if ($useStaticLoader) {
|
51 |
+
$includeFiles = Composer\Autoload\ComposerStaticInit4c3174ac4bf370c3acc8c379bef0ab9a::$files;
|
52 |
+
} else {
|
53 |
+
$includeFiles = require __DIR__ . '/autoload_files.php';
|
54 |
+
}
|
55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
56 |
composerRequire4c3174ac4bf370c3acc8c379bef0ab9a($fileIdentifier, $file);
|
57 |
}
|