Compare commits

...

1621 Commits

Author SHA1 Message Date
Matt Pass
15b49865d2 v6.0 beta 2017-01-26 12:11:26 +00:00
Matt Pass
17e209fef5 v6..0 beta 2017-01-26 12:11:14 +00:00
Matt Pass
4b53196c2c Linewrap off and indent with spaces now defaults 2017-01-26 08:47:02 +00:00
Matt Pass
38b4ab79c0 No conv other than base64 to handle binary also 2016-11-13 22:42:43 +00:00
Matt Pass
95b7d0decf Immediate invoking or on interval instead 2016-11-13 22:40:34 +00:00
Matt Pass
abcedf9dc5 Use base64 encoding on all commits 2016-11-13 22:39:38 +00:00
Matt Pass
32841341cd Don't show .git dir, show diffs in non anim mode 2016-11-13 19:39:12 +00:00
Matt Pass
3e31879ec3 Only update minimap after 1 sec of inactivity 2016-11-13 13:55:02 +00:00
Matt Pass
15428a2ba8 Put hardcoded values back in 2016-11-11 17:41:44 +00:00
Matt Pass
9f1d8e7cd4 Remove hardcoded fixed values or move to % 2016-11-08 22:18:15 +00:00
Matt Pass
47ca5193b3 Set name and email in github.js 2016-11-05 22:20:54 +00:00
Matt Pass
5dfca2e9ff 4 x CM addon files removed, use CM v5.20.0 & inc 2016-11-05 11:36:08 +00:00
Matt Pass
7a87b5ed16 Error catching inability to get zip file data 2016-11-02 18:34:38 +00:00
Matt Pass
2349fdffb9 Error catch no plugin data and display message 2016-11-02 18:33:48 +00:00
Matt Pass
766adfab65 Revised logic re text on set password/login button 2016-11-02 17:29:23 +00:00
Matt Pass
e4724e8f1e Separate terminal display & fix minimap layout call 2016-10-23 14:25:55 +01:00
Matt Pass
f2b0227692 pre vs pre-wrap depending on line wrapping 2016-10-23 13:39:03 +01:00
Matt Pass
e228d2a59d Minor code tweaks and fix minimap box position 2016-10-23 13:23:02 +01:00
Matt Pass
ce1919ba64 Terminal items added and don't move if same name 2016-10-22 17:52:38 +01:00
Matt Pass
418d9f2384 Minor tweaks to styles and added terminalLink class 2016-10-22 17:32:21 +01:00
Matt Pass
caf80ea971 XHR file added - handles terminal work & return info 2016-10-22 17:30:22 +01:00
Matt Pass
132d78b128 No text on links, added terrminal link and iframe 2016-10-22 17:08:11 +01:00
Matt Pass
24ebeea3a8 Terminal stylings added 2016-10-22 17:03:08 +01:00
Matt Pass
db617e8569 Terminal input UI added 2016-10-22 17:03:00 +01:00
Matt Pass
a03c25b276 No need for text pieces now, have icons 2016-10-22 17:01:56 +01:00
Matt Pass
750bd37987 3 x docExplorer icons added 2016-10-22 17:01:13 +01:00
Matt Pass
7fa26924e4 Fix blank timeStart cases 2016-10-20 08:51:06 +01:00
Matt Pass
3a10a84c48 Can pass timeout, set def of 60, else text return 2016-10-18 08:58:38 +01:00
Matt Pass
cd74e280c5 Try to get version for 5 secs, set placeholder 2016-10-18 08:55:36 +01:00
Matt Pass
54f293a823 Microtimes added to image URL to avoid cache 2016-10-18 08:29:06 +01:00
Matt Pass
cd3f0a9068 Move styles only 2016-10-13 08:14:47 +01:00
Matt Pass
c35d47be65 Preserve whitespace in dir/file names 2016-09-20 09:08:43 +01:00
Matt Pass
04b1bd4150 Don't try to get tag info if no opposite 2016-09-20 08:45:09 +01:00
Matt Pass
8c59d5d617 Minimap tweaks, goToLine now vert centred & anim 2016-09-07 00:12:00 +01:00
Matt Pass
aa06486b2c Simple scrollbar addon files added 2016-09-07 00:06:19 +01:00
Matt Pass
8288bd19b4 docExplorer param & anim tweaks & custom scroller 2016-09-07 00:05:56 +01:00
Matt Pass
5f88464804 Scrollbar within files frame is customised 2016-09-07 00:02:42 +01:00
Matt Pass
069282ac0d Disable scrolling on editor iframe 2016-09-07 00:02:15 +01:00
Matt Pass
74f048e812 Simple scrollbars addon added and overlay used 2016-09-07 00:01:34 +01:00
Matt Pass
2799d57dcc setMinimapLayout now own function
Triggered on CM update and CM scroll
2016-09-05 12:50:40 +01:00
Matt Pass
4457cec405 Get Minimap and function/class listr working 2016-09-05 12:22:36 +01:00
Matt Pass
b16e8dd03d Minimap and function/class list now working 2016-09-05 12:20:46 +01:00
Matt Pass
b6faf3b412 Function/Class List items added as CSS classes 2016-09-05 11:51:04 +01:00
Matt Pass
752c1a72ae Can drop 855px now, set dynamically 2016-09-05 11:50:35 +01:00
Matt Pass
a119e42b86 Set overflow hidden on docExplorer 2016-09-05 10:17:13 +01:00
Matt Pass
907f4ad587 Minimap, func/class & docExplorer items added 2016-09-05 10:08:57 +01:00
Matt Pass
fde97e3b76 Add editor CSS, draggabilly, links & docExplorer 2016-09-05 10:08:19 +01:00
Matt Pass
eae8fde591 Wording added for minimap & func class list 2016-09-05 10:06:03 +01:00
Matt Pass
b50ac52aea Move 4 x items right to make room for docExplorer 2016-09-05 09:42:26 +01:00
Matt Pass
9f69ae1ef5 Include runmode, hide scrollbar, use update now 2016-09-05 09:37:49 +01:00
Matt Pass
71bc1994f9 runmode.js CM file added 2016-09-05 09:35:14 +01:00
Matt Pass
792125529d Draggabilly JS min file added 2016-09-05 09:34:55 +01:00
Matt Pass
707d3a9b03 Removing php.ini
Caused blank page issue for a few people - turning magic quotes off in
code is OK
2016-09-05 08:56:12 +01:00
Matt Pass
e9d7c7817f xssClean uploaded file name 2016-08-31 14:34:00 +01:00
Matt Pass
94ca7bbe32 Remove autocomplete from code field 2016-08-29 23:31:09 +01:00
Matt Pass
b351b86414 Move to tmp dir in breaking tmp structure
By having own naming scheme, items more likely to be unrunnable from
here. Also prefixed with a dot so not typically available anyway
2016-08-27 15:11:31 +01:00
Matt Pass
f6769b5933 Saves delete to tmp selection on save 2016-08-27 15:08:34 +01:00
Matt Pass
d9e5737dc4 Delete to tmp option added 2016-08-27 15:08:14 +01:00
Matt Pass
0027259e67 Version 5.7 2016-08-26 09:40:45 +01:00
Matt Pass
5337ff5fe9 Don't get this via CURL 2016-08-26 09:24:17 +01:00
Matt Pass
749dc212d9 Need to replace \ with / in fileLoc 2016-08-25 21:28:51 +01:00
Matt Pass
9d7565c317 Close tag on same line needs extra adjustment + 1 2016-08-25 19:46:56 +01:00
Matt Pass
9efbe9a9bf Make 0 smallest number, to avoid negative numbers 2016-08-25 17:03:35 +01:00
Matt Pass
67e929dc75 injClean function added 2016-08-25 17:02:56 +01:00
Matt Pass
a0e48b5088 injClean inputs 2016-08-25 17:02:39 +01:00
Matt Pass
667417262c injClean and numClean inputs 2016-08-25 17:02:16 +01:00
Matt Pass
83e7c62b9b numClean and xssClean inputs 2016-08-25 17:01:23 +01:00
Matt Pass
8797e8f5e0 Simpler code moved to settings.php 2016-08-25 16:59:28 +01:00
Matt Pass
ee90c48a1c Pane names pos & opac added & diff on/off fixes 2016-08-25 15:04:45 +01:00
Matt Pass
93c33162a1 CSS added for 2 x pane names as labels 2016-08-25 14:57:44 +01:00
Matt Pass
068ec67c9d getData used and 2 x split pane names added 2016-08-25 14:57:11 +01:00
Matt Pass
761f39407a Use getData now, first couple as curl & die message 2016-08-25 14:55:48 +01:00
Matt Pass
227eefa332 Can pass text as 3rd param now for die message 2016-08-25 14:54:38 +01:00
Matt Pass
1d6c60c19a Get data now via getData 2016-08-25 14:50:10 +01:00
Matt Pass
a9402eb4ae getData used 2 x via curl and 1 x via default 2016-08-25 14:48:21 +01:00
Matt Pass
d449623153 Use getData with curl param 2016-08-25 14:46:42 +01:00
Matt Pass
31d96eca3b Using getData now and fix to issue #652 2016-08-25 14:45:33 +01:00
Matt Pass
3d8644ae4c Using getData function now 2016-08-25 14:44:18 +01:00
Matt Pass
893894f97b Get data via new function 2016-08-25 14:39:19 +01:00
Matt Pass
d992173967 Function to get data via fopen or curl & used 2016-08-25 14:37:18 +01:00
Matt Pass
483ac6cd6c Fix to backup files in root - // to / in path 2016-08-19 12:47:39 +01:00
Matt Pass
e3868fb285 Editor consistant, restore button added & mode set
CSS and JS files added plus settings added to make consistant with main
editor
Restore as new version button added
Load in new partial JS file to set the correct mode
2016-08-19 12:46:48 +01:00
Matt Pass
410ef385d5 Load partial JS file in now 2016-08-19 12:44:09 +01:00
Matt Pass
d5c019d05a Define laanguage modes in new partial JS file 2016-08-19 12:43:53 +01:00
Matt Pass
76b782535c Tag syncing now implemented & working
Replaced previous system which had some issues with a much more reliable
system and in less code too
2016-08-19 11:10:45 +01:00
Matt Pass
2a998016eb CodeMirror instance passed as 4th param 2016-08-19 11:04:54 +01:00
Matt Pass
f1a4710aea Tag replacement syncing improved & available again 2016-08-12 18:56:57 +01:00
Matt Pass
f8bbe45de7 Clearer wording on popup re changed file 2016-08-12 11:03:37 +01:00
Matt Pass
f5d8384469 Prefix URL with HTTP_HOST 2016-08-12 11:03:07 +01:00
Matt Pass
1266f73f64 Unescape short PHP and ASP tags
They are interpreted otherwise and JS modified to produce false
positive.
2016-08-09 09:55:31 +01:00
Matt Pass
cfee2c0182 Handle CORS errors & display info plus rejig events 2016-08-02 12:04:21 +01:00
Matt Pass
afe4222eb6 Colors wrapped in DIV and CORS wrapper added 2016-08-02 11:33:55 +01:00
Matt Pass
f2017c17b3 Change to site base & adjust help info also 2016-08-02 11:30:12 +01:00
Matt Pass
f15a1b1d8e Replacing alerts with ICEcoder.message 2016-08-01 08:39:48 +01:00
Matt Pass
41f52cc3be Animate diff pane in/out 2016-07-31 12:59:12 +01:00
Matt Pass
3bfbc918f0 Version 5.6 2016-07-29 09:34:21 +01:00
Matt Pass
2c7a338dfb Merge pull request #645 from JpaKaagman/master
Updated the dutch language file
2016-07-24 20:46:48 +01:00
Matt Pass
db518cf2c6 ftpManager is a taller modal now 2016-07-22 10:41:29 +01:00
Matt Pass
8e790bec60 Clear any FTP session selection we may have 2016-07-22 10:40:04 +01:00
Matt Pass
f3edf9e2ae No longer hardcoded and now selection driven 2016-07-22 10:38:08 +01:00
Matt Pass
95a3d09672 ftpManager() now a working option 2016-07-22 10:34:47 +01:00
Matt Pass
1a654ec172 English language pieces added for FTP 2016-07-22 10:34:23 +01:00
Matt Pass
78117d52d0 repPosEnd is now ftpSites as it's next array item 2016-07-22 10:33:57 +01:00
Matt Pass
157d9a40fa New FTP sites manager modal added 2016-07-22 10:33:11 +01:00
Matt Pass
b5e78fb04c ftpSites now part of config settings 2016-07-22 10:32:48 +01:00
Julian Kaagman
a2dea59b24 Update dutch language file 2016-07-17 11:24:10 +02:00
Julian Kaagman
cc300f7edd Merge remote-tracking branch 'mattpass/master' 2016-07-17 09:56:38 +02:00
Matt Pass
1f0acdfe5f go-localhost-root.php added, resets and refreshes 2016-07-11 09:42:39 +01:00
Matt Pass
76c03cffff Remove dev logging, goLocalhostRoot and ftpManager added 2016-07-11 09:40:03 +01:00
Matt Pass
ae1188f81d Selecting localhosts goes there, rejig/hide others 2016-07-11 09:39:03 +01:00
Matt Pass
313002e4a0 Need to globalise text and set the array chunk 2016-07-11 08:46:15 +01:00
Matt Pass
63364001ea Update logout counter if available 2016-07-11 08:37:17 +01:00
Matt Pass
1af9d60dd3 60 now in own span 2016-07-11 08:35:01 +01:00
Matt Pass
76fce1c2b8 Split lang pieces up so 60 is updateable 2016-07-11 08:34:41 +01:00
Matt Pass
67e28106f9 Use premade var rather than spec in another way 2016-05-05 16:01:53 +01:00
Matt Pass
191990ffdb Change param and remove all other BOMs 2016-05-05 15:55:55 +01:00
Matt Pass
af318dd703 Don't set $origContent 2016-05-05 15:55:05 +01:00
Matt Pass
f83929584f Revert "No need to set $origContent"
This reverts commit c967325b7d.
2016-05-05 15:54:17 +01:00
Matt Pass
c967325b7d No need to set $origContent 2016-05-05 15:53:29 +01:00
Matt Pass
11fe0ad17a Update to match main JS file 2016-05-05 15:37:06 +01:00
Matt Pass
8da4352ee4 Don't send char count size anymore 2016-05-05 15:36:22 +01:00
Matt Pass
8a1fec4e18 Tweak to comment 2016-05-05 15:35:53 +01:00
Matt Pass
d686faf8a7 Replace only first BOM, include ending if needed 2016-05-05 15:35:43 +01:00
Matt Pass
e8ef9e5195 Don't log info anymore 2016-05-05 15:32:04 +01:00
Matt Pass
6735caae36 UTF8 BOM should be replaced with a PHP_EOL 2016-04-26 09:15:55 +01:00
Matt Pass
eabae9bed4 Supress saving error log info and showing message
Temp measure till we know UTF8 BOM issue is fixed
2016-04-26 09:15:38 +01:00
Matt Pass
5d23115c95 +1 not +2 2016-04-25 09:50:25 +01:00
Matt Pass
55692d3c49 Error handling improvements
Replace \r in content, only do extra JS if could FTP write OK
Get original content and check charCount and if finding different sizes,
log into to file
2016-04-25 09:50:09 +01:00
Matt Pass
3391b60836 Pass charCount along with save request as a check 2016-04-25 09:48:02 +01:00
Matt Pass
2727bcb3e8 Replace * when analysing bannedFiles list 2016-04-24 11:14:18 +01:00
Matt Pass
f6d19d2650 Don't move backups dir when updating 2016-04-24 10:56:22 +01:00
Matt Pass
22bca280f5 5 x new settings added, lineNumbers updates preview 2016-04-23 15:19:03 +01:00
Matt Pass
20614885de Pass in and update 5 x vars & CM options 2016-04-23 15:17:03 +01:00
Matt Pass
6831cea155 5 x new settings available to JS 2016-04-23 15:15:25 +01:00
Matt Pass
9a4e93fc43 5 new settings added, updating in config file & JS 2016-04-23 15:15:10 +01:00
Matt Pass
d44bc40c85 5 x new settings added 2016-04-23 15:14:19 +01:00
Matt Pass
f8c1fbfbec lineNumbers controlled from JS var 2016-04-23 15:13:55 +01:00
Matt Pass
94fe55cc14 5 x setting text pieces added 2016-04-23 15:13:26 +01:00
Matt Pass
e2f63a1d3b 5 x settings controlled from JS vars 2016-04-23 15:13:07 +01:00
Matt Pass
f8565d87b7 Version 5.5 2016-04-21 09:38:10 +01:00
Matt Pass
5a9cd5e85c Change true to false if checkbox is set 2016-04-14 09:28:05 +01:00
Matt Pass
09d34da6c3 disable further reg checkbox added & style tweaks 2016-04-14 09:26:17 +01:00
Matt Pass
d31db1de4e disable further registrations text piece added 2016-04-14 09:23:52 +01:00
Matt Pass
f388545412 Check if file/dir requested is on banned list first 2016-04-14 08:28:47 +01:00
Matt Pass
f5705393ee Check if requested file is on banned list first 2016-04-14 08:25:42 +01:00
Matt Pass
1e7b735b7f Add note re comma delimited 2016-04-14 08:24:31 +01:00
Matt Pass
6c12f36805 Italian language needs some apos unescaping 2016-04-13 22:17:19 +01:00
Matt Pass
838612932c Create duplicate IP based config file also 2016-04-08 10:22:10 +01:00
Matt Pass
b9f08b160b Margin to left & slightly slimmer, plus help cursor 2016-04-06 23:06:44 +01:00
Matt Pass
fcf72f0d12 Missed the dot 2016-04-06 22:56:09 +01:00
Matt Pass
d1a2f6ab8f activeline-background added back in 2016-04-06 22:54:03 +01:00
Matt Pass
38693781a0 Change of background and matchingbracket, drop activeline-background 2016-04-06 22:50:51 +01:00
Matt Pass
1fdb6c0086 Redo style for matchingbracket 2016-04-06 22:49:57 +01:00
Matt Pass
1fce9834db matchBrackets now included and enabled 2016-04-06 22:49:32 +01:00
Matt Pass
095d626883 Auto logout and interaction timers
openSecs to store a total number of secs ICEcoder has been open for, a 1
sec interval to check for auto-logout and session ping events. Function
added to show warning 60 secs before a logout, useNewSettings function
updates auto-logout period on settings change. Also function added to
reset the auto logout timer if it's showing. logout function now accepts
a type and maybe passes that through plus interceptKeys will reset timer
also
2016-04-06 21:48:40 +01:00
Matt Pass
4b12f4f365 Reset timer added to mouse events 2016-04-06 21:36:11 +01:00
Matt Pass
5d3ffae30c Mouse events added to reset and pingActive iframe 2016-04-06 21:34:09 +01:00
Matt Pass
9b6a701ffc reset timer on mouse events & auto-logout added 2016-04-06 21:31:13 +01:00
Matt Pass
d909d5ce1c Add file to keep session alive 2016-04-06 21:23:37 +01:00
Matt Pass
3d866fa2f2 Auto logout warning content added 2016-04-05 19:27:47 +01:00
Matt Pass
6ed0861f5b autoLogoutMins param added with 0 as default
0 being disabled setting
2016-04-05 19:25:43 +01:00
Matt Pass
4154b2bf3b Text pieces added re auto-logout 2016-04-05 19:08:27 +01:00
Matt Pass
59a18645c6 autoLogoutMins now updated in file 2016-04-05 17:13:38 +01:00
Matt Pass
aa92f86aa9 Setting added for auto-logout mins 2016-04-05 17:13:08 +01:00
Matt Pass
444e7ef6b4 Dropped support for Rust
CodeMirror doesn't seem to work with this mode after minification and so
has been dropped.
2016-04-02 14:23:41 +01:00
Matt Pass
d9393bf059 Only set mode if it's different to what is set
Avoids recoloring code
2016-04-02 13:18:29 +01:00
Matt Pass
904dee8f80 Check & clear server queue & return if we have this
If we have the exact same item URL, there is a save jamming situation,
so clear the server message and item from the queue then return
2016-04-02 12:55:19 +01:00
Matt Pass
cca5836698 No longer LZ compressing data before sending 2016-04-02 11:48:00 +01:00
Matt Pass
a406abd610 No longer using PHP LZ Compressor
Was too problematic one some characters so dropping use of this idea.
Too little benefit and many issues arising.
2016-04-02 11:46:15 +01:00
Matt Pass
5cde633847 Not using JS LZ Compressor anymore 2016-04-02 11:42:58 +01:00
Matt Pass
de5460b43f Removed PHP and JS versions of LZ Compressor
Becoming too problematic to use and for such little benefit so dropping
2016-04-02 11:42:36 +01:00
Matt Pass
a66661b194 Old style syntax re arrays also 2016-03-29 21:35:12 +01:00
Matt Pass
587132d81b LZCompress now including UTF16 2016-03-28 22:26:40 +01:00
Matt Pass
3c6b6ff81d Version 5.4 2016-03-19 12:28:47 +00:00
Matt Pass
c811b8585a Remove commented line re folding
Using CodeMirror foldcode addon now
2016-03-19 11:46:04 +00:00
Matt Pass
344bd2dd50 Handle dragging files setting drag cursor
On drag over CM instance, call setDragCursor with event and 'editor'
string
Set ondragover function call upon this function too with folder/file
string, same as when init'ing via get branch
setDragCursor function added, handles cursor for dropping files editior,
folder and file including if we have the CTRL key down or not
2016-03-19 11:10:30 +00:00
Matt Pass
875d8a75ca On drag over file/folder, start setDragCursor() 2016-03-19 11:06:14 +00:00
Matt Pass
077163650b On drag over CM instances begin function 2016-03-19 11:05:06 +00:00
JpaKaagman
ed7bde9d14 Merge remote-tracking branch 'mattpass/master' 2016-03-19 10:29:36 +01:00
Matt Pass
891a4c2b8c Set drag data using new func on dragstart (FF need) 2016-03-18 22:10:18 +00:00
Matt Pass
2bbc2f5628 Set default data on drag start (so it works in FF) 2016-03-18 22:07:44 +00:00
Matt Pass
2cd2aaa916 String escaping needed 2016-03-18 22:06:22 +00:00
Matt Pass
fd73e42df3 Improvements and fixes, esp to FTP saving
No need to replace \r\n also in stitchChanges (\n and then \r will do
that).

If FTP based file, get from fixed filepath, explode on new lines and add
lineEnding to end of each but last, to match what the local file($file)
process will do.

Establish number of Unix and Windows lines in 'changes' update process
only (no need to do on new file) and also str_replace based on their
counts under FTP usage also (to match what local file processes are
doing).
2016-03-18 19:42:18 +00:00
Matt Pass
e127a9eee1 strClean 2 x input points 2016-03-18 15:46:38 +00:00
Matt Pass
0617f294cd No newlines at EOF and remove file_exists
Existence of a dir is done on is_dir
2016-03-18 14:00:18 +00:00
Matt Pass
31428cdaf0 Merge pull request #614 from microvb/patch-1
Error control for missing local folder
2016-03-18 13:57:16 +00:00
Matt Pass
ff9db44537 Merge pull request #615 from microvb/master
Corrects some issues that caused the interface to hang
2016-03-18 13:50:54 +00:00
MicroVB INC
4307dc1ae6 Added check tor stat results
When `$file` is a folder, the commands `filesize` and `filemtime` would result in the following warnings :

PHP Warning:  filemtime(): stat failed for /var/www/html/css in /var/www/html/ice/lib/file-control-xhr.php on line 921
PHP Warning:  filesize(): stat failed for /var/www/html/css in /var/www/html/ice/lib/file-control-xhr.php on line 940

This patch corrects this.
2016-03-18 08:28:40 -04:00
MicroVB INC
76010bb5cf Corrected php notice in XHR file manager
Wrapped `$ftpSite` in `isset()` where $ftpSite was a part of a condition for existence testing and was using the simplified mode for the check.  The simplified mode resulted in the following notice being produced when no data was present in the `$ftpSite` variable.

> PHP Notice:  Undefined variable: ftpSite in /var/www/html/ice/lib/file-control-xhr.php on line 518

While the error pertains specifically to line 518, this adjustment was applied to all condition checks on this variable.
2016-03-18 07:57:22 -04:00
Matt Pass
6a432f2f5c New flag and only perform actions if relevant value 2016-03-18 11:32:01 +00:00
Matt Pass
9dc9246c84 New new flag to false in 2 x places also 2016-03-18 11:30:42 +00:00
Matt Pass
0e9e66fee7 New flag false on up also here 2016-03-18 11:29:50 +00:00
Matt Pass
2f0bdefdeb Set new flag as false on up & 2 new events started 2016-03-18 11:27:28 +00:00
Matt Pass
5ff340ccc4 Only attempt to detect hasFocus if CM instance 2016-03-17 18:58:58 +00:00
Matt Pass
9a516ecd27 XSS clean 3 areas 2016-03-17 17:36:13 +00:00
MicroVB INC
7017ab1c33 Update settings-common.php 2016-03-16 18:20:22 -04:00
MicroVB INC
5d6299e3c8 Fix enumeration warning when localhost missing
Corrects the following error :

scandir(/var/www/html/ice/lib/../backups/localhost): failed to open dir: No such file or directory in /var/www/html/ice/lib/settings-common.php on line 190

(possible review required for if this is something that should be created before this method is called, or if a simple check as this patch does is all that is required.)
2016-03-16 18:16:02 -04:00
Matt Pass
be842742de JS LZ compress changes/content before sending 2016-03-16 19:54:05 +00:00
Matt Pass
cba7f06b4e Load LZ PHP lib, compress and decompress contents 2016-03-16 19:51:59 +00:00
Matt Pass
d8eb2b72db Load LZ PHP lib, convert posted content, set on XHR 2016-03-16 19:51:17 +00:00
Matt Pass
8d082120f6 Load JS LZ String lib 2016-03-16 18:57:00 +00:00
Matt Pass
4581d32551 LZ String JS lib added
Compress and decompress strings with LZ compression in JS
2016-03-16 18:32:03 +00:00
Matt Pass
c6e72fd894 LS String PHP lib added
To compress and decompress strings with LZ compression
2016-03-16 18:30:21 +00:00
Matt Pass
9bac1d7fcc Merge pull request #613 from microvb/patch-1
Context is now accessible inside GetVersionCount()
2016-03-16 18:25:26 +00:00
MicroVB INC
7d8b229153 Context is now accessible inside GetVersionCount()
globalized $context inside `GetVersionCount()` to eliminate `Notice:  Undefined variable: context in /var/www/html/ice/lib/settings-common.php on line 203`

Added check if file is readable for `.version-index`'s inside the loop within `GetVersionCount()`
2016-03-16 12:59:59 -04:00
Matt Pass
09fde0c3e5 Only get statusObj if we have status 200
A non 200 event means there may not be a statusObj, which in turn causes
an error which causes a JS jam
2016-03-16 13:27:48 +00:00
JpaKaagman
a10eb21d70 Merge remote-tracking branch 'mattpass/master' 2016-03-15 06:22:58 +01:00
Matt Pass
f5dc08e9b7 Set own couple of lint stylings 2016-03-12 16:45:39 +00:00
Matt Pass
3296434473 Load CM addons re folding and use that
Drop own foldcode.js lib and load 3 x addon files from CodeMirror
instead
Set new CSS classes to override those in addon lib files
Set default gutter name, and a min fold size of 1
Remove calls to own code folding function
2016-03-12 16:44:34 +00:00
Matt Pass
e82d93108d Don't recursively set fold markers now onload 2016-03-12 16:41:16 +00:00
Matt Pass
c72fd7f49a Don't recursively fold, let CM addon do this
Also comment out shortcut for now, to reimplement using new lib
2016-03-12 16:39:54 +00:00
Matt Pass
65b36d9e23 Own foldcode.js dropped in favor of CM version
It's more efficient and creates the markers without blocking the display
of the editor.
2016-03-12 16:21:57 +00:00
Matt Pass
f432b7dc32 CodeMirror 5.12 plus extras
foldcode and foldgutter added and letting CodeMirror handle code folding
now as more efficient
lint.css styles changed back to what they were before
New themes added - Liquibyte, Dracula, Seti, Yeti, Material, Abcdef,
Bespin, Hopscotch, Isotope, Railscasts
2016-03-12 16:18:24 +00:00
Matt Pass
5e04e79354 New function and system to handle saving via update
stitchContents added to stitch content changes together into version the
user is seeing in the browser.
Can action save on having changes or full content now
2016-03-11 18:36:51 +00:00
Matt Pass
c896ebb087 Set savedContents also when loading 2016-03-11 18:35:05 +00:00
Matt Pass
55ab3d63dd Saving will now send only changes
savedContents added to maintain last known version of saved file
changesToSave function added to output array of differences between
current and last known saved version stored in array
Establish any changes using this function in save events, pass changes
or content via XHR
2016-03-11 18:34:50 +00:00
Matt Pass
c93c3b3785 xssClean on 4 x $_GET instances 2016-03-09 19:23:35 +00:00
Matt Pass
e5dcd02b62 xssClean unsanitised user input 2016-03-08 15:41:58 +00:00
JpaKaagman
df78d5bb61 Merge remote-tracking branch 'mattpass/master' 2016-02-11 20:43:15 +01:00
Matt Pass
0bcf7a1d72 Replace + in filename with %2B to avoid converts 2016-02-05 09:32:47 +00:00
Matt Pass
ae5f96caad Merge pull request #607 from JpaKaagman/master
Updated Dutch language file
2016-01-25 15:28:33 +00:00
JpaKaagman
94c6d5899a Updated updated Dutch language file
Updated all lines in the Dutch language file, grabbed the inexistent
Dutch lines from the English file and translated those.
2016-01-24 21:11:21 +01:00
Matt Pass
afb3f99681 Merge pull request #605 from concept-core/patch-1
lang/dutch.php
2015-12-05 10:28:13 +00:00
Wouter van Marrum
a45e7c604d lang/dutch.php
Changed some more lines for the dutch language file.
2015-12-02 15:13:37 +01:00
Matt Pass
9e49b9558c Switched order of details 2015-11-17 09:18:43 +00:00
Matt Pass
811c12d4ec Sort code and display bytes and datetime also 2015-11-17 09:15:42 +00:00
Matt Pass
131392d5fd Lots of version control screen improvements
Takes up more of the larger space now, scrollable list, fixed bad
version ref in URL, onclick highlight this elem and ID added as hook
plus added missing end anchor tag. Info container added, versions
available to JS and function added to highlight link.
2015-11-17 09:14:06 +00:00
Matt Pass
1a54bc6664 Larger version control screen, same as settings 2015-11-17 09:09:52 +00:00
Matt Pass
d98c24cc04 Don't wrap items in the file manager 2015-11-17 08:14:03 +00:00
Matt Pass
68eb4a0393 Version 5.3 2015-11-13 12:30:43 +00:00
Matt Pass
5fc4ae596a Disabled closing tag completion till fixed 2015-11-13 10:26:09 +00:00
Matt Pass
e31f435640 Show editor and add functions to 2 x buttons
Include settings instead, plus CodeMirror lib and CSS
Set some CSS classes, and CodeMirror CSS files
Display clickable list of backups
DIV container added for editor display and buttons
Display CodeMirror instance and setup 2 x functions to open backup in
new tab or diff pane
2015-10-25 11:46:29 +00:00
Matt Pass
80acab0bf0 .button class added 2015-10-25 11:42:41 +00:00
Matt Pass
a95484d044 Load chosen backup, show buttons and set preview 2015-10-25 11:42:18 +00:00
Matt Pass
d979d76866 PT BR translation tweaks by Adir Prawutzki 2015-10-15 18:52:05 +01:00
Matt Pass
5f6c6838a0 Use singular term if 1 2015-10-09 08:47:55 +01:00
Matt Pass
cb6d339183 Display list of backups per date 2015-10-08 09:27:34 +01:00
Matt Pass
815578eb34 Now getting count info & as 2nd part use arrray val 2015-10-08 09:26:09 +01:00
Matt Pass
c5996f7b23 Returns count and array now, rev scandir order 2015-10-08 09:25:11 +01:00
Matt Pass
e89d449805 onclick open versions screen and pass sel filepath 2015-10-08 09:24:01 +01:00
Matt Pass
5b549c5102 Text pieces added for backup-versions 2015-10-08 09:22:49 +01:00
Matt Pass
fa793564d9 Display backups instead & can show versions screen 2015-10-08 09:21:50 +01:00
Matt Pass
395fdf0727 Merge pull request #592 from unix4you2/master
Spanish upgrade for multiple strings
2015-10-07 18:28:45 +01:00
Matt Pass
7f8e052a26 Handle newly saved files to avoid NaN 2015-10-03 18:31:53 +01:00
Matt Pass
b349891321 html, 3 x meta tags and favicon added
Missing html tag, set UTF-8, no index or follow for robots, a mobile
viewport that's scalable and use a favicon
2015-10-03 17:47:25 +01:00
Matt Pass
592c8ccda4 Clear iceRoot from checked path and check locNest
These couple of bug fixes ensure paths aren't compounded and also handle
empty dirs correctly
2015-10-03 17:40:19 +01:00
unix4you2
a366a84d00 Spanish upgrade for multiple strings 2015-09-28 14:00:42 -05:00
Matt Pass
f4762fbaf3 Working with file version counter now 2015-09-18 11:09:30 +01:00
Matt Pass
b00ce2f7c9 Get number of versions for this file 2015-09-18 11:06:53 +01:00
Matt Pass
6ccf0fb135 Working with file versions now
Establish and use version URL part
Add 1 to count on saving local or FTP and update version display after
doing this
All backed up files now have incremental numbers in parens postfixed on
filename
.versions-index file written to with new file line or if line exists
update count on it
On re-getting file due to save conflict, get the count and set in JS
array
2015-09-18 11:04:42 +01:00
Matt Pass
3c6a60f96d Class added for versions display container 2015-09-18 10:50:45 +01:00
Matt Pass
84fefcbad0 On opening file, push in version count and display 2015-09-18 10:49:48 +01:00
Matt Pass
139ca019bb Versions display container added 2015-09-18 10:48:59 +01:00
Matt Pass
0245ae418a Wording change and now shows 'X days of backups' 2015-09-09 08:43:36 +01:00
Matt Pass
a78d847f4e More text added re backups 2015-09-09 08:38:06 +01:00
Matt Pass
0592459666 Backup system working with params now
Only run backup process if user has this turned on. Some code
simplification added. Removes old backups past X days as per user
setting.
2015-09-08 08:03:53 +01:00
Matt Pass
6492068717 Update 2 new backup settings on updating 2015-09-08 08:00:38 +01:00
Matt Pass
36ea3eabc4 Backup settings added to turn on/off and for X days 2015-09-08 07:59:52 +01:00
Matt Pass
5c19367b87 disabled pseudo added for text input fields 2015-09-08 07:59:15 +01:00
Matt Pass
3a08ccf350 backupsKept and backupsDays settings added
Decided to go with it being turned on and kept for 14 days as default
2015-09-08 07:58:15 +01:00
Matt Pass
f5897cd036 Language pieces added for backups 2015-09-08 07:57:28 +01:00
Matt Pass
4f7ea84754 Use yyyy-mm-dd structure instead 2015-09-07 10:27:41 +01:00
Matt Pass
b46e2f324a Redone backup dir struc for subdirs & efficiency
Now establishes path from base and if full path doesn't exist, it fills
in the blanks, including sub-dir structure to file from base.
2015-09-07 09:49:18 +01:00
Matt Pass
0c3390929b Store a backup of our file each time we save
Saves into a host > year > month-day dir, with in incremental backup
names, number in parens
2015-09-05 19:02:45 +01:00
Matt Pass
857fa2580c Pane scroll position tweaks for soother scrolling
Match scroll pos on going split pane.
Only sync both panes if we're in split pane mode
Action the scrollTo after a 0ms tickover to give priority to browser
controls over syncing. This means on manic scrolling there may be very
slight judder, but it avoids 99% and appears smooth for reasonable
scrolling
2015-09-05 17:17:51 +01:00
Matt Pass
40e699828b FTP check file/dir & use string, FTP delete added 2015-09-05 16:28:17 +01:00
Matt Pass
60b527d5a4 Function added to delete file/dir over FTP 2015-09-05 16:25:57 +01:00
Matt Pass
1c99f127be Replace alert with message 2015-09-05 16:24:29 +01:00
Matt Pass
3221bea7a7 Message added re deleting >1 item under FTP 2015-09-05 16:22:55 +01:00
Matt Pass
96bba6972a Can now use regular +/- chars also 2015-09-05 13:42:13 +01:00
Matt Pass
b9546dfaa4 Small tweak to Portuguese BR char 2015-09-05 13:32:32 +01:00
Matt Pass
340e3b3d4d Chars replaced with HTML entites
Thanks for Reinaldo César Guedes for this!
2015-09-05 13:18:17 +01:00
Matt Pass
e1a2a8da71 FTP enhancements
FTP items: ongoing connection, save finished, improved/multiple doNext
messages, check dir/file, JSON details output
2015-09-01 20:05:47 +01:00
Matt Pass
38a5bea898 Merge pull request #581 from bhz6344/patch-1
To fix Chinese character display abnormal
2015-08-21 06:06:54 +01:00
Matt Pass
fa5b549081 Tweaks to save and move
Only use docRoot if not FTP (ie, local)
srcDir and tgtDir need prefixed slashes removed
Use JS isFileFolder function to establish dir/file type as short term
measure, to be replaced with FTP call to establish type so can all be
handled server side
2015-08-20 10:30:33 +01:00
Matt Pass
379f6ac1c3 Return info on a file over FTP 2015-08-20 09:26:29 +01:00
Matt Pass
87be112d9f isFileFolder function added to return DOM elem type
Detects by classname and returns folder/file or false if not found
2015-08-20 09:25:47 +01:00
Matt Pass
491edf256e Can now move a file/dir over FTP 2015-08-20 09:21:00 +01:00
Matt Pass
f38e984b31 Rename now working for FTP 2015-08-19 07:07:31 +01:00
Matt Pass
b1df1e8403 Use ftpStart and ftpEnd functions 2015-08-19 06:36:04 +01:00
Matt Pass
41592007b9 ftpStart and ftpEnd functions added 2015-08-19 06:34:51 +01:00
Matt Pass
78ddfe61ba FTP processes added to handle mkdir and chmod 2015-08-18 07:06:04 +01:00
Matt Pass
2bfef30c03 New FTP functions added to mkdir and change perms 2015-08-18 07:03:45 +01:00
bhz6344
ac65cd89c1 To fix Chinese character display abnormal
When "default_charset" was not set in php.ini,and the file contents chinese char,it may show incorrectly.
Because the function htmlentities() takes "ISO-8859-1" as default value of "default_charset"  if PHP version is lower than 5.4.
So I think it's better to check the "default_charset" before function htmlentities().
What's your opinion?
2015-08-17 14:23:45 +08:00
Matt Pass
7540ef846f Version 5.2 2015-08-13 11:22:28 +01:00
Matt Pass
57bf19d69c Undo change, overwrote commit by mistake 2015-08-13 10:47:24 +01:00
Matt Pass
e330a57da8 Rename var, as used in isset checks
Renamed var to distinguish from ftpSite, which is checked for existance
with isset and if available jumps into FTP mode. Having it previously
set to false, it's available, so erroneously goes into FTP mode with no
creds. This is a standalone var name now just to establish connection
channel.
2015-08-13 09:31:12 +01:00
Matt Pass
2ef1637d0b Clarify var by calling it ftpRoot 2015-08-13 09:23:11 +01:00
Matt Pass
01dc2f7943 FTP control started, with list, open and save
Function added to get a raw list from the FTP connection and work with
this string to return simple and detailed lists as arrays to use
Get contents function added to get content from file over FTP and stream
it back as the return
Finally, function added to save over FTP
2015-08-13 09:16:11 +01:00
Matt Pass
0606025a46 Can now save content over FTP
Include FTP control lib and include/exclude items if we have ftpSite
If ftpSite, establish connection and if no errors, write the content to
the filepath before closing connection
2015-08-13 09:12:41 +01:00
Matt Pass
aefee93cf6 Can now load content over FTP
Include new FTP control lib, no need for saveType here and
exclude/include doing certain things if we have an ftpSite
Getting file over FTP creates connection and establishes any errors plus
loads conent
Image display uses ftpSite and also remove stray end script tag
2015-08-13 09:10:09 +01:00
Matt Pass
3222a3202c FTP param structure added 2015-08-13 09:06:31 +01:00
Matt Pass
4d1b4e2237 Can now get branch over FTP
Include new FTP lib and if we have FTP site params available connect
over FTP as the list to show
2015-08-13 08:57:38 +01:00
Matt Pass
8afacd3ef8 Update to match main JS file 2015-08-13 08:55:20 +01:00
Matt Pass
b07cdd6fc7 Allow images to populate canvas cross-origin 2015-08-13 08:52:01 +01:00
Matt Pass
1237d5868a Changes to UTF-8 encoding logic 2015-08-13 08:51:38 +01:00
Matt Pass
f9418db57f Check if string is strict UTF8 and if not encode
Handles other ISO formatted filetypes this way
2015-07-30 19:19:55 +01:00
Matt Pass
e741d6c207 Cache params added and ensuring app/octet-stream 2015-07-30 19:16:05 +01:00
Matt Pass
66ec7c34c6 Tweaked BG and simultaneous tags 2015-07-19 21:40:39 +01:00
Matt Pass
15ff1534c3 Tweaked BG 2015-07-19 21:16:53 +01:00
Matt Pass
fca567d53c Tweaked BG and more subtle footer strip BG 2015-07-19 21:16:39 +01:00
Matt Pass
2db6c44dbc Tweaked BG 2015-07-19 21:16:00 +01:00
Matt Pass
45e18a5daf More line height, tweaked BG & call before change 2015-07-19 21:15:35 +01:00
Matt Pass
2802e20401 Brighter pink, error moved to after tag class
Needs to move to avoid being overidden
2015-07-19 19:04:18 +01:00
Matt Pass
a2bdab0bcf Merge pull request #576 from pietrondo/master
update italian language
2015-07-19 11:07:00 +01:00
pietrondo
4ea49c197b update italian language 2015-07-16 16:54:30 +02:00
Matt Pass
fae387002c Merge pull request #573 from unix4you2/master
Spanish upgrade when F5 (Ctrl-R) is pressed
2015-07-12 09:33:28 +01:00
unix4you2
9a2fa27010 Spanish upgrade when F5 (Ctrl-R) is pressed 2015-07-09 15:53:06 -05:00
Matt Pass
0e82fb8c97 Settings section tabbed and tidied up also 2015-07-09 12:11:13 +01:00
Matt Pass
9cc53f474e Don't update the preview window if curr tab is new 2015-07-09 12:10:42 +01:00
Matt Pass
9d661e454e Responsive helper plugin ready plus 500x500px PW 2015-07-09 12:08:19 +01:00
Matt Pass
e52b7c673f Notes added as these are updated via JS obj update 2015-07-03 21:53:29 +01:00
Matt Pass
d676c11473 Rename vars, update top and FM on font size change 2015-07-03 21:52:14 +01:00
Matt Pass
b87f5ba969 Need to declare as function, error handling 2015-06-30 17:18:36 +01:00
Matt Pass
0f29baf504 Tweaks and comments
Need a semi colon for inline JS, improved and added comments
2015-06-30 17:17:55 +01:00
Matt Pass
166d27ca4c Show anim on trial bar, new checkExists function
Run autoOpenFiles after 200ms, giving time for ICEcoder to finish
displaying onscreen, including the trial bar animating (over 150ms)
checkExists is a new function which will take a path and give you back a
status object, stored under lastFileDirCheckStatusObj
Only set fileControl URL if serverQueueItems[0] is available, it isn't
under new setup with extra AJAX call
2015-06-30 17:05:50 +01:00
Matt Pass
f39093c78f Better way of handling file existence checking
Vars to determine if we have overwrite OK permission from user or
there's no conflict with filenames, so it's a new one and we can save
Don't check for DOM node to decide if we can save or not anymore,
instead run an XHR that ends up setting lastFileDirCheckStatusObj from
false to something
On spotting that, clear the interval and continue by asking user if they
want to overwrite, or if there's no conflict, set that value instead
If we have no newFileName or we have one but no permission to overwrite
yet, set the content for use in a moment under saveAsContent and we loop
back around
2015-06-30 16:45:51 +01:00
Matt Pass
f7d9b050b3 Don't consider adding commas to comment lines
As the comma won't be at the end, but in the middle and adding one to
the end causes PHP issues
2015-06-26 14:34:10 +01:00
Matt Pass
ab0cef93b7 isset check to avoid PHP notice 2015-06-26 13:58:10 +01:00
Matt Pass
9fffd73f13 Version 5.1 2015-06-26 13:48:53 +01:00
Matt Pass
24cd0f8f36 Change comment wording only 2015-06-26 13:41:34 +01:00
Matt Pass
1c79062baa Only if logged in consider going to donate screen
Can't redir with PHP as targetting window, so do with JS and exit after
die also.
2015-06-26 12:16:52 +01:00
Matt Pass
f31ddf3dec Text added for trial bar info 2015-06-26 12:15:27 +01:00
Matt Pass
76d9b6a860 Login no longer shows/animates the trial bar 2015-06-26 12:14:45 +01:00
Matt Pass
61bfeaa536 Editor area now shows trial bar
Onload of body animates the bar
2015-06-26 12:12:15 +01:00
Matt Pass
76421a4fd7 Trial bar styles moved to editor now 2015-06-26 12:10:27 +01:00
Matt Pass
3c370d8ec7 ino is now alias for C++ language 2015-06-26 08:55:36 +01:00
Matt Pass
13eff9ce40 New function to update last 10 list
Called when setting previous files, this manages the last 10 files
opened by rotating thru the list
2015-06-25 18:15:04 +01:00
Matt Pass
0ec7c5a8fc ID added as hook, remove line breaks, fix path
Also remove <br> and only PHP_EOL if not last item
2015-06-25 18:12:47 +01:00
Matt Pass
94e1c61b58 CTRL+G shortcut noted 2015-06-25 18:09:50 +01:00
Matt Pass
d6a21c9b71 Can now press CTRL+F and CTRL+G to go next/prev
5th param added to tell function we want to find previous, set as false
if not available
Work out find result position whichever direction we're travelling
Also actually find next/prev, don't select same instance on first
find/prev operation processed
Looparound cases for next/prev to cycle to start/end
Processes also set up to do the search cursor movement
CTRL+F and CTRL+G now combined function
2015-06-25 16:05:25 +01:00
Matt Pass
f2f9dc441e ID added as a hook for click event trigger later 2015-06-25 15:58:28 +01:00
Matt Pass
168d635ab8 initCanvasImage setup and hover zoom preview also
initCanvasImage function added to draw image on init and set
backgroundSize of floatingContainer
interactCanvasImage is new name for drawCanvasImage. Function also makes
zoom hover preview follow mouse pointer and move the backgroundPosition
of the image in that hover DIV
2 new events added to show/hide the hover DIV on mouse over the canvas
2015-06-25 13:40:25 +01:00
Matt Pass
ed4f8078a8 initCanvasImage first 2015-06-25 13:37:18 +01:00
Matt Pass
4691c7e2b0 initCanvasImage first, floatingContainer BG set 2015-06-25 13:36:34 +01:00
Matt Pass
7b99febba1 floatingContainer added and CSS class & pseudo set
DOM elem has an ID as a hook so we can target later
Class sets a 55px square block for a 11x11 grid of 5px squares, hidden
to begin with, also with border for contrast and image-rendering value
of pixelated, so we get sharp pixels squares at our 5x zoom
Pseudo class added, 3px square as it has a 1px border, positioned to sit
over the 6th square (centre) in our 11px square grid
2015-06-25 13:33:00 +01:00
Matt Pass
fe0436762c b, i, strong, em, li tag wrappers removed
Shortcut keys caused problems for various keyboard types/languages and
these are more style based HTML tags. Keeping to a simpler set of
structural and hyperlink tags only - div, span, p, a and h1-h3.
2015-06-25 11:20:22 +01:00
Matt Pass
7b4ba0008b Focus on Go to Line field is now CTRL+L 2015-06-25 11:02:04 +01:00
Matt Pass
1699a1ada7 Recursively rename child node elem attributes also 2015-06-25 10:53:52 +01:00
Matt Pass
55cccdecc9 Action diffs after 0ms and handle wrapped lines
Need to call updateDiffs after 0ms as char change hasn't yet registered
Add on the extra heights for wrapped lines per line number
2015-05-23 11:23:23 +01:00
Matt Pass
05996618d7 Use a value of 0 if timeStart not available 2015-05-22 19:41:13 +01:00
Matt Pass
9572394962 Global var and echo progress on creation 2015-05-22 19:15:04 +01:00
Matt Pass
2dc72de62b Needs to be enclosed in PHP tags 2015-05-22 19:14:48 +01:00
Matt Pass
379026143f Include params file & write it if it doesn't exist 2015-05-22 18:59:31 +01:00
Matt Pass
7cab1933df Include our new params file 2015-05-22 18:58:55 +01:00
Matt Pass
dcfd4f3ed2 System params file started
Contains value in var to use to output to a file
2015-05-22 18:58:44 +01:00
Matt Pass
7e633128cf log error info on that event and always clear queue 2015-05-22 18:30:56 +01:00
Matt Pass
48c42f0523 Set error info on bad filename
Also only do the next parts with a filename if no error by that point
2015-05-22 18:29:53 +01:00
Matt Pass
2521dafde1 Break into more if/elseif/else so can handle error 2015-05-09 09:42:21 +01:00
Matt Pass
db5348cd68 Escape apostrophes 2015-05-09 09:41:44 +01:00
Matt Pass
6881f9d79b Enhancements to XHR reponse
On readyState 4 (finished), output response to dev tools console if user
wants that. Then if status 200, display error info or doNext. If not
200, display error message and output object to console.
2015-05-09 09:29:17 +01:00
Matt Pass
4b8808f498 Error message for non 4/200 XHR response 2015-05-09 09:26:22 +01:00
Matt Pass
93b38b55d3 Set fileDirResOutput in top.ICEcoder
To determine what response output to provide to JS
2015-05-09 09:26:01 +01:00
Matt Pass
fe2391e6ad fileDirResOutput added and comments 2015-05-09 09:25:20 +01:00
Matt Pass
0c86f5718e Now establishing line number and goto on open 2015-05-03 18:30:22 +01:00
Matt Pass
53e0252afc Enhanced open+goto, own func & used to get remote 2015-05-03 18:29:47 +01:00
Matt Pass
55fe5e7199 loadingFile = false should end processes 2015-05-03 18:28:38 +01:00
Matt Pass
d92b35fe23 Merge pull request #562 from Atatoth/patch-1
Update updater.php
2015-05-03 17:09:40 +01:00
Konrad Kałowski
1ec27a4df9 Update updater.php
missing \ and ' on update
2015-05-03 13:06:11 +02:00
Matt Pass
c982c6d2c7 Needs Saving value swap order to match ice-coder.js 2015-05-03 08:26:50 +01:00
Matt Pass
330ec0d605 Version 5.0 2015-05-02 14:57:27 +01:00
Matt Pass
462ee75980 lockedNav tweaks
lockedNav moved to index.php so set by settings
If nav is unlocked, on init, set width to minFilesW, before setLayout()
Tweaked comments for isPathFolder for consistency
Set file locked state for contract/expand and only if a change has been
made
2015-05-02 14:15:02 +01:00
Matt Pass
0470231a37 lockedNav now set according to settings 2015-05-02 14:10:56 +01:00
Matt Pass
6f9c127c1b Revised info for side section of settings screen 2015-05-02 14:10:06 +01:00
Matt Pass
3facbe2de6 If no filemtime value use time 2015-05-02 14:09:38 +01:00
Matt Pass
ea49fed017 Better info on side, simpler generation of list 2015-05-02 14:09:09 +01:00
Matt Pass
166b5e34b9 Renamed file 2015-05-02 14:08:15 +01:00
Matt Pass
e52998079b Removed debounce from autocomplete
CodeMirror race condition issues resolve so this is no longer needed.
Dropped from 200ms to 0ms if we uncomment in future to avoid lag.
2015-05-02 09:32:15 +01:00
Matt Pass
863f13d3cf Autocomplete is now on keypress by default 2015-05-02 09:30:25 +01:00
Matt Pass
f2b4535d31 Set/clear diffs on pane change, plus case catching
Clear diff marks when going to a single pane, do if going to split pane
Fallback to blank string on mainText and diffText
Also only clear marks and do diff highlighting if we have a cM instance
2015-04-29 09:01:11 +01:00
Matt Pass
5695d2c3c7 Tooltips clearer and using blue standard color 2015-04-29 08:57:29 +01:00
Matt Pass
879feca2ce Pull action available soon 2015-04-29 08:57:09 +01:00
Matt Pass
4ee4ab9247 Usage tooltips added for 2 x paths, with CSS also 2015-04-29 08:56:56 +01:00
Matt Pass
af86a93993 app/XML files are OK here also 2015-04-29 08:55:48 +01:00
Matt Pass
343c07c238 Replace \ with / in path to check 2015-04-27 16:54:42 +01:00
Matt Pass
7fd08afe14 3 x activeLineBG types setup now
Usage depends on theme selected
2015-04-27 16:17:19 +01:00
Matt Pass
6117145239 Text placeholder tweaks and additions 2015-04-27 16:15:41 +01:00
Matt Pass
1403136d0e Copyright tweaks
Copyright ICEcoder Ltd and also display more relevant details
2015-04-27 16:15:10 +01:00
Matt Pass
fc0a994b6b 3 x activeline colors, h2 back in, info class added
3 types of active line color, usage depends on theme
h2 mistakenly removed, added back in
info class added and used re devMode
2015-04-27 16:14:35 +01:00
Matt Pass
9712c369c1 Check 2 x POST vars are set before considering 2015-04-27 16:13:15 +01:00
Matt Pass
85a9cfaecd Set $filemtime if not set, need to use in JSON 2015-04-27 16:12:44 +01:00
Matt Pass
c34b2608cc English placeholder tweaks/additions 2015-04-27 16:12:09 +01:00
Matt Pass
ad30ff3c45 Only include index.php in backups and plugins dirs 2015-04-27 16:11:23 +01:00
Matt Pass
74355c0d00 Drop .gitkeep, use index.php for redirects
Avoids potentially exposing dir contents
2015-04-27 16:10:43 +01:00
Matt Pass
208897b040 Temp tweaks to get working, investigate more!
Need to clear the serverQueue, seemingly because the load process
doesn't clear the queue in time? This would be quite a big thing as we
need to be able to have a batch of commands and run them without sync
issues. To investigate,
The if condition check needs to now deduct 1 from the changeGeneration?
Why is this?
Also display test complete when finished.
2015-04-25 17:34:38 +01:00
Matt Pass
8d6c58af36 Demo/big arrow removed 2015-04-25 17:09:48 +01:00
Matt Pass
12e6bedf6d CodeMirror dir renamed to just that
Dropped version number so we can see cleaner commit changes in future
2015-04-25 15:12:47 +01:00
Matt Pass
0cb99eb48f 2 x CodeMirror files (JS and CSS) 2015-04-25 15:08:34 +01:00
Matt Pass
45ec256d4f CodeMirror theme changes 2015-04-25 15:06:46 +01:00
Matt Pass
04fa37a358 Retain existing perms on upload or set newFilePerms 2015-04-25 13:31:07 +01:00
Matt Pass
c21d57e36e Don't include $iceRoot in comparison 2015-04-25 12:24:57 +01:00
Matt Pass
de5e759ac9 Be more specific about dir being excluded
Only exclude actual dir ICEcoder is running from
2015-04-25 12:20:24 +01:00
Matt Pass
bb1c047ece Update to match main JS file 2015-04-25 12:00:48 +01:00
Matt Pass
67d44e56bb Don't set cookie_path or use strict mode
Using cookie_path on IE has an issue and causes session, then CSRF
issues
Stop using strict_mode as causes a problem on some setups
Add notes to these and httponly re IE and PHP version
2015-04-25 11:53:53 +01:00
Matt Pass
c7c984f66a Use top.ICEcoder.filesFrame in instances
IE has trouble selecting DOM node otherwise
2015-04-25 11:52:26 +01:00
Matt Pass
d320bb7172 Format tweak only 2015-04-25 10:50:00 +01:00
Matt Pass
fb82ab881c Use ICEcoder.ask as confirm function 2015-04-25 10:49:50 +01:00
Matt Pass
366ad3257e font-size now set by user settings 2015-04-25 10:49:18 +01:00
Matt Pass
75de0f3a08 Simplified to nested ternarys, comment & ; tweak 2015-04-25 10:21:05 +01:00
Matt Pass
47f64bf874 Shuffle items around and style tweaks 2015-04-25 10:15:13 +01:00
Matt Pass
400ef8cfce Swap write order, better file check with alert 2015-04-25 10:14:34 +01:00
Matt Pass
797df35ffe Create config settings file on the fly
So we can update using PHP later
2015-04-25 10:13:45 +01:00
Matt Pass
551f3f248b Remove settings file, now created by settings.php
So PHP has rights to update it later (multiUser, enableRegistration for
now, more to come in the future likely).
2015-04-25 10:10:14 +01:00
Matt Pass
a2cf9483d6 Only add dir events if a dir, not file
(Matches commit made just after v5.0 beta release by andrey012, when
adding new dir/file using updateFileManager)
2015-04-25 06:44:09 +01:00
Matt Pass
77329e9119 Deselect value if cancelling focus
Amazingly, there is no deselect() as an opposite to select(). The nearest alternative seems to be setSelectionRange(0,0), but support is patchy. Most reliable solution is to set the value to itself.
2015-03-13 16:33:11 +00:00
Matt Pass
7faf1099b0 Focus again after 0ms tickover incase DOM wasn't ready 2015-03-13 16:23:15 +00:00
Matt Pass
8893a29bd3 Merge pull request #537 from andrey012/master
2 minor fixes - much awesomeness here! :-D Thanks @andrey012
2015-03-13 15:22:42 +00:00
Andrey Grinenko
669827653e handling another file+line case: "filename on 123" 2015-03-13 17:59:46 +03:00
Andrey Grinenko
c6058959e3 Merge branch 'master' of github.com:andrey012/ICEcoder 2015-03-13 16:07:03 +03:00
Andrey Grinenko
b3acb61201 ice-coder.min.js updated to get changes of previous commit 7d66f32e5b 2015-03-01 18:34:39 +03:00
Andrey Grinenko
7d66f32e5b allow opening files with name (... on line \d+) - open + goto line 2015-03-01 18:30:48 +03:00
Andrey Grinenko
0583f1ea1c make goToLine if filename contains line number and file is already opened 2015-02-25 02:59:50 +03:00
Andrey Grinenko
f278394346 When Esc is used within Find window - return to text editor 2015-02-24 18:12:51 +03:00
Andrey Grinenko
ba634bbeed fix to isPathFolder function 2015-02-23 01:51:56 +03:00
Andrey Grinenko
a488c19d61 Prompt when F5 (Ctrl-R) is pressed. It is common thing to refresh page after you have made some tweaks, and it is common thing to refresh wrong page and even although everything is saved and tabs will reopen - you will loose opened folders in fileManager and cursor positions in open files. So it's better to prompt anyway. 2015-02-23 01:31:12 +03:00
Andrey Grinenko
c1982279f4 use font from settings in both fileManager and Tabs - otherwise on high-density screens it is getting hard to work 2015-02-23 01:30:55 +03:00
Andrey Grinenko
ed6a9bb03c ask for confirmation before moving files by drag-drop - it is too easy to move files by an accident 2015-02-22 19:23:16 +03:00
Andrey Grinenko
4d7ac54e6b detect whether an item in folder list is file or folder depending on its <a> item class, rather then the fact, that it has a dot in its name (I have lots of folders named like example.com which were treated as files) 2015-02-22 19:19:37 +03:00
Andrey Grinenko
fac5bf8662 session fixation fix - previous version did not let me in, because it regenerated session before even trying to start old one and check whether it is valid or not.
I've also added session regeneration on login, which is good practice to prevent session fixation.
2015-02-22 19:19:19 +03:00
Andrey Grinenko
8f1cca087b session fixation fix - previous version did not let me in, because it regenerated session before even trying to start old one and check whether it is valid or not.
I've also added session regeneration on login, which is good practice to prevent session fixation.
2015-02-21 02:58:44 +03:00
Andrey Grinenko
d826469c49 Merge branch 'master' of git://github.com/mattpass/ICEcoder 2015-02-20 23:52:19 +03:00
Andrey Grinenko
878ceef2ec cosmetics - make comments little more readable 2015-02-20 23:50:19 +03:00
Andrey Grinenko
e1a1b1b1cf minor tweaks:
treat XML as editable file
use htmlentities to escape textarea content
2015-02-20 23:49:54 +03:00
Andrey Grinenko
9f408abb34 allow Ctrl-O + enter filename with line number (captured from log or exception trace) - to go straight to the line 2015-02-20 23:49:02 +03:00
Andrey Grinenko
52d7d0819c indentAuto - make configurable 2015-02-20 23:40:47 +03:00
Matt Pass
46a0e62a84 Merge pull request #539 from unix4you2/master
Spanish language in settings-screen.php
2015-02-20 18:41:51 +00:00
John Arroyave
bd692990cb Spanish language in settings-screen.php 2015-02-19 07:05:26 -05:00
Matt Pass
9b7f0bd15a Merge pull request #538 from unix4you2/master
Spanish (ES) language by @unix4you2
2015-02-19 08:06:30 +00:00
John Arroyave
fcd1b4fb64 Spanish (ES) language by @unix4you2 2015-02-17 14:55:31 -05:00
Andrey Grinenko
c96c5cd12b 2 things about "Ctrl-F" find:
1. if there is some selection - in the code window - put it into the search box straight away
2. tweak for Chrome - somewhy it had problem with using Ctrl-F more then once
2015-02-17 09:15:15 +03:00
Andrey Grinenko
db3130f911 when Ctrl-F - select text in find text input in order to make user able to enter new text right away, without need to remove old text first 2015-02-16 14:01:11 +03:00
Andrey Grinenko
ae37460e92 Preserve line endings when editing existing file. 2015-02-16 13:18:32 +03:00
Andrey Grinenko
2e601a4ccc do not add openCloseDir onclick handler (which loads folder contents) for files. Files are not folders and this handler only causes problems overlapping with doubleClick handler sometimes. 2015-02-16 13:15:16 +03:00
Matt Pass
f76270b7b9 Version 5.0 beta 2015-02-08 14:59:55 +00:00
Matt Pass
694daa15aa v5.0 beta 2015-02-08 14:45:53 +00:00
Matt Pass
0d8cd9a612 Update to match main JS file 2015-02-08 14:41:04 +00:00
Matt Pass
2171dd5664 Remove old serverQueue line (dup), perms via XHR 2015-02-08 14:20:55 +00:00
Matt Pass
9a9d66ffb9 Perms now hanlded by XHR 2015-02-08 14:20:02 +00:00
Matt Pass
b5566c8382 Perms now handled by XHR 2015-02-08 14:19:49 +00:00
Matt Pass
385d4e0efd Escaping added 2015-01-30 20:56:34 +00:00
Matt Pass
8eeb64ad09 No need to pass fileRef in URL, passed in 3rd param 2015-01-30 08:10:04 +00:00
Matt Pass
caa9fab5b4 Don't change to lowercase here 2015-01-30 08:06:54 +00:00
Matt Pass
c087283e46 Unescape new linesuse $file now not fileRef
Also no old skool textarea replacement with custom string
2015-01-30 08:05:14 +00:00
Matt Pass
55f8b9adc2 Fix to path with | to / replacement 2015-01-30 07:22:12 +00:00
Matt Pass
9cb89463bb Missing ] 2015-01-26 09:10:23 +00:00
Matt Pass
3a48fd9cdd $docRoot not always available 2015-01-25 14:08:19 +00:00
Matt Pass
c4bba758c7 Get path from root plus up 1 dir 2015-01-25 14:04:20 +00:00
Matt Pass
db44da92f1 Syntax fix to output microtime correctly 2015-01-25 11:41:17 +00:00
Matt Pass
bedd75c0c5 Couple more replacements of " with ' 2015-01-25 11:34:16 +00:00
Matt Pass
c277d3a6bb Fix to microtime path with ' not " 2015-01-25 11:29:08 +00:00
Matt Pass
f681cc88c9 Portuguese (BR) contibution by @leonardoroese
Committed manually due to merge conflict issues
2015-01-23 09:24:59 +00:00
Matt Pass
c106c0a410 Merge pull request #527 from Nippey/patch-1
Fixed some spelling errors and translation of proper names to german.
2015-01-23 09:16:33 +00:00
Matt Pass
50a4a3e4bc Update to match main JS 2015-01-23 08:46:44 +00:00
Matt Pass
586a4e6a64 XHR used for all but load now
XHR now being used for many more functions, only load now remains to be
done
file value passed as 3rd param on serverQueue
moveFile() file param also has string replacing  / to | on filename
replaceInFile() fileRef param also passed as 3rd param, investigate!
If not saving prev files refs and not loading (ie, the extra functions
now covered by XHR), if we're saving, send contents with XHR request,
both send timeStart and file of course
2015-01-23 08:46:01 +00:00
Matt Pass
ef98e4f5ab More funcs moved to XHR setup, only load remains
New folder
Move file/folder
Rename file/folder
Paste file/folder
Upload file(s)
Delete file(s)/folders(s)
Replace text in a file
Get contents of remote URL
...all moved to XHR setup now!
2015-01-23 08:29:45 +00:00
Matt Pass
7f039d81d8 Microtime URLs to help stop caching and XHR upload 2015-01-23 08:26:08 +00:00
Matt Pass
ab39f9f51b Microtime this URL also to help stop caching 2015-01-23 08:25:25 +00:00
Matt Pass
47263bdbed Redone session params
No longer using session_start_safe() function because it caused more
usage problems than it solved. Setting a load of new params now to give
a much better setup.
2015-01-23 08:24:20 +00:00
Matt Pass
b65a7a690e Microtime all CSS and JS paths to help stop caching 2015-01-23 08:22:41 +00:00
Matt Pass
3dc26528b4 index.php placeholder, also boots user up a dir 2015-01-23 08:18:52 +00:00
Nippey
73305b3be2 Fixed some spelling errors and translation of proper names to german. 2015-01-19 11:21:11 +01:00
Matt Pass
de4c63c37e Change file type from UTF8 to ANSI
Contained BOM at start which caused issues with languages containing
extra chars (everything but English, Dutch and Norweigian).
2014-12-24 16:58:40 +00:00
Matt Pass
8b720dd0e6 Tweaks to new theme on green BG and text
More greenish background, green text is a better colour
2014-12-24 16:13:57 +00:00
Matt Pass
f0a2bbc531 New default theme and classic theme now option
Looks more sophisticated and less neon/eye popping
2014-12-16 08:41:24 +00:00
Matt Pass
c322c501ac previousFiles updated to only available files
Avoids ICEcoder asking to open files that are no longer available.
2014-12-15 15:36:40 +00:00
Matt Pass
5f948d9c56 Fix and improvements to saving and new tabs
newFile now just calls newTab but with 'alsoSave' param, which is picked
up and runs saveFile, giving more power to the API
When opening a file, if it's a new tab, call createNewTab with a 'new'
param, which is picked up and if set, we don't call setPreviousFiles. We
don't want to set them on adding a new tab anyway, plus it creates an
extra process, which means the server queue gets jammed and new tabs
don't get a save action processed.
2014-12-12 18:34:49 +00:00
Matt Pass
b2d13e0e30 Merge pull request #511 from AVGP/507-csrf-issue
Flexible Session handling
2014-12-01 18:56:07 +00:00
Martin Naumann
4a1ba5dfe3 Using reworked version from @mattpass 2014-12-01 19:44:21 +01:00
Martin Naumann
6861fa9ced Re-adding the session_cookie_params 2014-12-01 19:43:07 +01:00
Martin N.
29857e7d70 Using a custom session_start_safe
This fixes path issues, where the session directory ends up not writeable.
2014-12-01 16:45:49 +01:00
Martin N.
b50bc5e598 Merge pull request #1 from mattpass/master
update
2014-12-01 16:21:18 +01:00
Matt Pass
aaf1ce1526 Merge pull request #510 from AVGP/460-http-only-session-cookie
Using httpOnly session cookie
2014-12-01 12:19:45 +00:00
Martin Naumann
36b20938b7 Using httpOnly session cookie 2014-12-01 10:34:13 +01:00
Matt Pass
670e3c47a6 Don't match ICEcoder path to doc root use basename
The 2 x if conditions added a security measure to avoid path traversals,
should languageBase or languageUser ever be set to something malicious
such as (eg ../../../../../../../etc/passwd)

However, it meant that the ICEcoder dir and the doc root dir paths had
to both start the same, and so be in the same location really. It was
previously a benefit to have them possibly contain different paths, but
this security point restricts this.

We can remove these 2 if conditions however and simply wrap the 2 array
values with basename(), so we take only the trailing file name and so
avoid path traversal issues.
2014-11-27 20:48:28 +00:00
Matt Pass
4ef49f0172 Message is now thanking user, click to continue 2014-11-27 18:09:48 +00:00
Matt Pass
aef3340d0f Do pass thru param re updating
To be picked up and so run ICEcoder.updated() to display message
2014-11-27 18:09:01 +00:00
Matt Pass
3ea34fb87a Remove value from button 2014-11-27 18:08:18 +00:00
Matt Pass
efdf729f83 Mobile devices now initial scale 0.5, not scalable
Display at half the size of the desktop and by setting the property that
users can't scale, it means it doesn't shift position/scale etc on
keyboard popup. Not a perfect mobile solution (that's planned one day
soon), but far more usable now.
2014-11-27 09:13:25 +00:00
Matt Pass
5ce3a9912c Bad URL on logout and die to go no further
Location shouldn't contain the dirname of the file or a loggedOut param
(with no CSRF!) - all unnecessary and causes problems
Also add a die() after the header location to go no further.
2014-11-26 10:02:33 +00:00
Matt Pass
2897c75a3d Login screen fades in quickly
Same colour BG, fade in login screen after 50ms delay over 100ms
transition and trial bar begins animation quicker (150ms instead of
500ms)
2014-11-26 09:38:55 +00:00
Matt Pass
fe29a57cdb Only include this chunk if githubDIff is true 2014-11-26 09:36:41 +00:00
Matt Pass
f75bd9fe53 doNext is starting and replace Win line endings too 2014-11-26 09:35:51 +00:00
Matt Pass
a7c0123072 Slightly faster trial remaining bar anim 2014-11-26 09:35:03 +00:00
Matt Pass
3b84af75d2 Only use if we have text available and no caching
Caching may be causing files not to show in file manager occassionally
and dreaded ERR_CACHE_MISS notification being shown in Chrome currently
2014-11-26 09:34:41 +00:00
Matt Pass
505f5b35c7 Only use if we have text available & logout fix 2014-11-26 09:33:10 +00:00
Matt Pass
77c0f61d7b Only update value if index.php
Causes file locking issues if allowed to be called from anywhere
Because we only call from index.php now, also need dirname(___FILE___)
to complete paths
2014-11-25 09:49:53 +00:00
Matt Pass
8d5715ebcd Update configCreateDate if 0 and 14 full days
configCreateDate set if 0 now on every load, not just save
14 full days setup (1296000 - 1 sec), so doesn't start by showing 13
days (and 23 hrs, 59 secs)
If configCreateDate == 0, $tRemaining is the $tPeriod
2014-11-21 16:40:32 +00:00
Matt Pass
cab12fd73c More escaping needed to output to JS fine 2014-11-21 16:38:11 +00:00
Matt Pass
7acd53dd54 Version 4.5 2014-11-21 10:56:14 +00:00
Matt Pass
edbe8af62f User language can be selected from settings screen
If there has been a change of language, set a bool flag for a reload
later
Save languageUser to file also on settings update
realpath checking on language file name also, dies if fails
2014-11-18 15:35:41 +00:00
Matt Pass
6f50a23f3b User language available in JS var 2014-11-18 15:32:39 +00:00
Matt Pass
53e5a4e3cb language dropdown added
Languages worded in own language also
2014-11-18 15:32:22 +00:00
Matt Pass
b1ef03513c english.php set as the base and user language 2014-11-18 15:31:07 +00:00
Matt Pass
e8cc6c540a File updated by @koseelg see #466 2014-11-18 14:02:12 +00:00
Matt Pass
f137a95704 Merge pull request #492 from pietrondo/master
update italian.php
2014-11-18 13:58:25 +00:00
Matt Pass
453850a891 Add source, shiftSim, boxSelect, del adjustCursor
Remote menu option is now Source
Don't hard code or pass through the adjustCursor value
shiftSim param added so we can simulate a shift key just as we do with
ctrlSim
boxSelect function added so we can draw a box on drag in the file
manager and select files. Math.abs used to always return a positive
number
2014-11-18 13:50:21 +00:00
Matt Pass
b3e2b497ff Only action if there and 0.5s after load
Only input focus if we're not showing the trial screen, indicated by
lack of $_GET param
Only if trialBarRemaining is there should we adjust the bar length, now
also done 0.5 after load
2014-11-18 13:34:16 +00:00
Matt Pass
c8b1e573b5 Remote renamed Source and Settings moved
Settings moved to Edit section, makes more sense to be situated here
Localhost option added under Source, will indicate viewing local files
in future
2014-11-18 13:31:20 +00:00
Matt Pass
180d26f837 fmDragBox added and related classes and styles
On mouse down, up and drag, we now also call boxSelect function with
appropriate param
If we haven't just dragged a box select area, we can selectFileFolder on
click. If we have, set to false afterwards to reset
fmDragBox div added with no select properties and also added to body
2014-11-18 13:29:43 +00:00
Matt Pass
07117591e5 Can redirect to trial ended page if on login page
Would only redirect on fresh open otherwise
2014-11-18 13:23:20 +00:00
Matt Pass
d72c8a46d5 Improved commenting system
Simpler code and now able to easily add new language commenting syntax
plus tweaks & fixes
2014-11-18 13:22:32 +00:00
Matt Pass
a24d9fc8da Tweak to text and indent more/less added
Moved the tabs shortcut to right column to make space
2014-11-17 16:43:37 +00:00
Matt Pass
39541f4c81 Esc falls through to ICEcoder control now
If we have multiple selections, deselect to the primary selection only.
If we only have a single selection, then we comment/uncomment.

(Avoids having multiple selections, pressing Esc to clear to a single
and also unwantedly commenting/uncommenting).
2014-11-17 16:00:23 +00:00
Matt Pass
7fc5c23b50 Fixes to comment based on cursor pos
Identify CSS <style> blocks
Only if we didn't identify caretLocType and have a fileName do we go by
file extension
2014-11-17 15:20:41 +00:00
Matt Pass
edc9f858fc Animate trial remaining bar on load
Moved PHP calculations to settings.php to be with other trial related
code
2014-11-17 13:01:22 +00:00
Matt Pass
429fab5c17 Establish trial time, % and days remaining 2014-11-17 13:00:22 +00:00
Matt Pass
1c7d96a026 Width 170 and 1s transition added 2014-11-17 12:59:36 +00:00
Matt Pass
394a264ca9 Trial bar added to login/setup screen 2014-11-17 12:43:15 +00:00
Matt Pass
1a2a921753 No need to decode here really
Is decoded in file-control.php (and XHR version).
Min JS file updated to match current JS
2014-11-14 11:49:27 +00:00
Matt Pass
b650b64455 file now POST'd and can be sent to serverqueue 2014-11-14 11:43:37 +00:00
Matt Pass
d43278fbf7 Request, decode
REQUEST used as param may be over GET or POST (under XHR setup now) and
html_entity_decode it
fileURLPart is now fileURL and POST'd in XHR send, not part of URL to
get
2014-11-14 11:41:15 +00:00
Matt Pass
4a23fe12a3 Get file value from request and decode
file value now can be received from POST or GET (REQUEST), as we will be
passing in POST via XHR in future
html_entity_decode the value so we can have special chars
2014-11-14 11:35:31 +00:00
Matt Pass
2d45e6e297 Apply new JS value to updateDiffOnSave flag 2014-11-14 09:52:17 +00:00
Matt Pass
df685b308e updateDiffOnSave available in JS
Used in if statement to determine if we should do this or not
2014-11-14 09:50:44 +00:00
Matt Pass
2b44096c4e Setting for updateDiffOnSave
With this enabled (the default), saving a file will copy the main pane
value to the diff pane. This means you can see what changes you are
making prior to a save and also can undo changes in diff pane to see
save points and how they differ to the main pane.
2014-11-14 09:49:39 +00:00
Matt Pass
b5550d4ba8 New file path set/fix and diffs work with XHR now
newFileName needs docRoot also in path
statusArray is now statusObj
Recoding of diff handling code to work with new XHR setup and
improvements at same time re reducing use of textareas
2014-11-13 17:31:37 +00:00
Matt Pass
7e40f9c044 Save items removed, now handled by XHR 2014-11-13 17:25:47 +00:00
Matt Pass
add96dc9d2 Tidy up of XHR call on save
Var extra vars
saveURL value now just used in situ
statusArray is now statusObj
2014-11-13 17:25:21 +00:00
Matt Pass
5fe097a84a No longer console.log
We should indeed only output if index.php and top.iceRoot is updated
after a settings change in settings-update.php (top.docRoot only changes
if you manually change the file, in which case a reload is needed and
this is picked up again from scratch).
2014-11-13 14:33:47 +00:00
Matt Pass
0651eedf1e Set the timeEnd and timeTaken values also here 2014-11-13 14:23:07 +00:00
Matt Pass
f7089ec6ca Pass through timeStart also in new file XHR data 2014-11-13 14:11:58 +00:00
Matt Pass
2f66afa4e4 Time params on the action and URI encode content 2014-11-13 13:59:44 +00:00
Matt Pass
6e12da596c New XHR file started for file-control
Will eventually replace file-control.php. Carries out same file checks
etc, plus defines error info, form looparound system gone in place of
2nd XHR call on save as/new file save. All JS moved into a doNext string
to be run on success (no errors).

The only output here is the JSON response once we have carried out our
processes.

Note: Diff loading/MDT mismatch system not done yet.
2014-11-12 17:47:43 +00:00
Matt Pass
cf26b5b4e2 XHR and JSON now used when saving
First step towards replacing the old HTTP & form posting looparound
method, with a much more efficient XHR and JSON response system. For
now, only save uses this, load, delete, perms etc use old system until
save is stablised and fully tested.
Starts XHR call and when we have a response, if there's an error, show
that, otherwise, do the items listed in the doNext value.
2014-11-12 17:45:13 +00:00
Matt Pass
ebf12f327f Only set top.docRoot and top.iceRoot from index.php
Avoids having something output to the browser in places where we don't
want it, such as the new file-control-xhr.php file. Temporary
console.log for now as reminder to finish checking this out.
2014-11-12 17:40:27 +00:00
Pietro
34d0dec862 update italian.php
another update :-)
2014-11-12 18:22:01 +01:00
Matt Pass
24c6b870fc Altered wording to mention the write check 2014-11-10 09:29:23 +00:00
Matt Pass
860590214d Check old version is writeable before update
Checks all ICEcoder files are writeable and therefore moveable, before
proceeding with the update.
If it files any that aren't, it will display a message, list them and
die with a link back to ICEcoder.
Also ignoring .git dir
2014-11-10 09:27:13 +00:00
Matt Pass
1d69fabce2 ondrag over, if dir not expand or this, expand
Mean you can drag items to folders and they expand so you may drop to a
sub dir inside
2014-11-10 08:27:24 +00:00
Matt Pass
669d06a4c6 Remove rogue dup line (in if condition) 2014-11-10 07:56:55 +00:00
Matt Pass
ce38b126dc Set user defined perms on new file/dir 2014-11-10 07:23:09 +00:00
Matt Pass
18d66850fa New dirs/files use perms defined in config 2014-11-10 07:20:21 +00:00
Matt Pass
78a4a35b17 New dirs use newDirPerms setting 2014-11-10 07:17:14 +00:00
Matt Pass
e524012ec0 Refers to/uses 755 2014-11-10 07:16:42 +00:00
Matt Pass
3432f9c331 newDirPerms and newFilePerms available in JS now 2014-11-10 07:15:16 +00:00
Matt Pass
f1b090351a Settings added for newDirPerms and newFilePerms
Using recommended defaults for a typical web server
2014-11-10 07:14:00 +00:00
Pietro
2371455f45 Update italian.php 2014-11-08 10:03:06 +01:00
Matt Pass
27b2953d9d Also not draggable by default
Set on mouse over/out to avoid unexpected drags
2014-11-07 22:44:54 +00:00
Matt Pass
b90dbda803 Not draggable by default, toggled on mouse over/out
Avoids unexpected drags outside of icon & filename
2014-11-07 22:44:15 +00:00
Matt Pass
3d0625231f Fix to cursor height for wrapped lines
Avoids issue caused by for non diff height styled lines
2014-11-07 22:00:12 +00:00
Matt Pass
d66d41b17f Display plugins icon, clickable as toggle
Useful for those using mobiles, where the left edge isn't really
accessable
Also makes the plugins panel obvious for those on desktops
2014-11-07 21:35:27 +00:00
Matt Pass
741a2bcc93 GitHub icon needed extra 2px 2014-11-07 21:33:47 +00:00
Matt Pass
24c4409c12 Plugins icon added
Class added to CSS, plus GitHub icons move along 16px and down also
2014-11-07 21:27:26 +00:00
Matt Pass
94512c31dd Don't clear selectedFiles on chmod
This is unnecessary and we need this to also have a target to replace
perms on
2014-11-07 21:02:43 +00:00
Matt Pass
56d1f60675 Update perms BG color etc on change 2014-11-07 21:02:11 +00:00
Matt Pass
defc8d4ffa Revert back to not replacing with pipes
Not needed
2014-11-07 20:59:10 +00:00
Matt Pass
51661a41dd Files/dirs with 777 shown in red
The 777 perm is now shown with a red background (and white text) so it
stands out as a bad practise. May look to add a setting to turn this
on/off in future.
2014-11-07 20:28:16 +00:00
Matt Pass
1ffea52e69 Merge pull request #488 from pietrondo/master
Update italian.php
2014-11-05 09:03:34 +00:00
Pietro
0e64cbdc7f Update dutch.php
and work also dutch.php
2014-11-05 00:47:31 +01:00
Pietro
b77fc4d3bb Update italian.php
now it works!!
2014-11-05 00:46:58 +01:00
Pietro
1fce0da413 little error at first line.. 2014-11-04 17:42:44 +01:00
Pietro
5e1557171f Update italian.php
first italian version...
2014-11-04 16:59:17 +01:00
Matt Pass
35d1b01727 Trial period & handling added 2014-11-04 12:58:08 +00:00
Matt Pass
94310226b4 Login handles donate & code system 2014-11-04 12:56:36 +00:00
Matt Pass
af19a5b825 No longer prompted to donate on update 2014-11-04 12:56:16 +00:00
Matt Pass
aa939e2655 License email, code and config create date added 2014-11-04 12:55:58 +00:00
Matt Pass
cd96fe4326 Version 4.4 2014-10-31 15:16:06 +00:00
Matt Pass
eff7e7fa85 6 JS window.location fallbacks
On some servers the header request can be ignored, so have JS as a
fallback
2014-10-31 15:04:27 +00:00
Matt Pass
de1704a617 Slashed paths on message & start point for FM keys
Piped paths converted to slashes on chmod server message display
On up/down/left/right/Enter, if we have no file selected, select root as
a start point
2014-10-31 14:49:17 +00:00
Matt Pass
40a2db446a BG colour should be slightly darker 2014-10-31 14:44:46 +00:00
Matt Pass
bf997fba42 Call new function every 20ms after clicking name
Will check if the item we wanted to open is now the selected tab and if
so, change find/replace options to find in selected file and clear
interval
2014-10-31 14:41:37 +00:00
Matt Pass
e462633dab Shortut DIVs wider, key controls added 2014-10-31 14:38:21 +00:00
Matt Pass
760a90dadc Shortcut slightly wider 2014-10-31 14:37:04 +00:00
Matt Pass
bbac17a2b7 Remove BG colouring on hover, is misleading
Should indicate focus, not hover
2014-10-31 14:36:04 +00:00
Matt Pass
10f269734c Ignore all in /plugins dir 2014-10-31 14:34:22 +00:00
Matt Pass
b6baa39f0b Ignore all in /tmp dir
Other items may be stored in the future, not sure of naming convention
for session files etc. Better to ignore tmp/*
2014-10-31 13:06:45 +00:00
Matt Pass
2a4d75bf9d Only transition on BG and change on mouse over/out 2014-10-31 10:56:45 +00:00
Matt Pass
15bce56967 updated function added
Displays message ontop of black BG asking user to donate if they find
useful
2014-10-31 09:53:19 +00:00
Matt Pass
14f84ad668 Updating now returns to root with flag
To trigger new updated function
2014-10-31 09:52:44 +00:00
Matt Pass
cea9a4e299 fmAction added & code tweaked, alts & improvements
On init, select root dir
fmAction added to allow movement around file manager with
up,down,left,right and enter
load param in openCloseDir is now always the opposite of what it was
before. Function also removes node if it was UL, so we don't have hidden
elems still there
Refactored tag wrapper section
Added conditions to move between file and content areas
(CTRL+Alt+left/right)
Space is no longer the key to refocuson content area
2014-10-30 17:42:40 +00:00
Matt Pass
dff76a439d On load, focus on files after a 0ms tickover 2014-10-30 17:34:19 +00:00
Matt Pass
4751e1c24a Background transition, changes on focus/blur
To indicate which side has focus
2014-10-30 17:33:46 +00:00
Matt Pass
ec14772abd Shortcuts added to allow working with FM
Up/down = traverse up/down in current dir
Left = back up to parent dir
Right = open dir/select 1st item in dir/open file
Enter = expand/refresh dir or open file
2014-10-30 11:55:10 +00:00
Matt Pass
4f47e717e6 On load don't focus on editor pane
Want to retain focus on file manager incase we are using shortcuts to
open files etc
2014-10-30 11:42:19 +00:00
Matt Pass
41e3e1c821 Update to match main JS file 2014-10-29 17:32:03 +00:00
Matt Pass
5ec63bb973 Move resultsBar according to scroll pos & panes
scrollbarVisible now part of top.ICEcoder namespace
Placement of resultsBar done in setLayout now and takes splitpane into
account
On change we set scrollbarVisible and set layout again
2014-10-29 17:30:52 +00:00
Matt Pass
e05fc594b7 Nest display functions gone & code assist on diff
Lots of items removed as part of dropping this:

dontUpdateNest
dontSelect
htmlTagArray
startPosLine
startPosCh
cursorOrigCh
cursorOrigLine
nestDisplay
tagString

highlightBlock()
getNestLocation()
getNestLocationSub()
setPosition()

images/nest-tag-bg.gif

codeAssistToggle now working on diff pane also
2014-10-29 16:22:38 +00:00
Matt Pass
79669fe8c7 Removed nestDisplay div 2014-10-29 16:18:42 +00:00
Matt Pass
68078c028c Removed nestDisplay class 2014-10-29 16:18:31 +00:00
Matt Pass
fa2478f2f7 Remove getNestLocationSub function 2014-10-29 16:17:42 +00:00
Matt Pass
8c237d3551 Removing nesting indicator
It's a bit annoying when you hover over the tags, is only useful for
HTML/XML etc and ICEcoder covers many langs now plus clutters the
display a bit. Not so useful anymore.
2014-10-29 16:17:16 +00:00
Matt Pass
5ae9e0b92e Focus on correct pane on drag
Used by pasteURL function to drop URL in correct pane
2014-10-29 14:56:12 +00:00
Matt Pass
3258c45eb9 Action correct pane - file/dir drag & fold/unfold
Focus on last instance on file/dir drag - used by pasteURL to drop URL
in correct pane
Shortcut for fold/unfold line also needed to consider pane
2014-10-29 14:54:58 +00:00
Matt Pass
b797acea90 Set cursor height (is a % of line height)
cursorHeight is a number from 0 to 1, based on % of line height. As we
set line heights in diff mode and the default cursorHeight is 1, it
fills 100% of the height. this tweak ensures the cursor height is the
same as the text height.
2014-10-29 14:07:09 +00:00
Matt Pass
91f47a4e20 Inner line diff highlighting on replaced lines
Loops through all changed lines and marks 3 ranges for pre, on and post
change on those lines
Applies to both main and diff panes
2014-10-29 12:43:03 +00:00
Matt Pass
cfc4410275 Tweaks to diff classes and new one added
Green class has black text to make more visible
Grey class has darker background
New lighter grey class added for non changed portions of text on diff
line
2014-10-29 12:37:17 +00:00
Matt Pass
bc552d2d2f true param added to always get from server
This param forces it to get content from server, without this could
potentially get cached content
2014-10-29 10:23:17 +00:00
Matt Pass
30025333dd Set previewWindowLoading flag according to state 2014-10-29 10:16:26 +00:00
Matt Pass
5ac87ffbf7 Check on interval for load state, then add plugins 2014-10-29 10:11:05 +00:00
Matt Pass
a08586252a New flag added for previewWindowLoading 2014-10-29 10:10:30 +00:00
Matt Pass
d1e4404038 Update to match main JS file 2014-10-28 09:22:04 +00:00
Matt Pass
b235b40715 doStatsJS plugin runs after open and update events 2014-10-28 09:20:59 +00:00
Matt Pass
9b7d987d0b On save trigger doStatsJS after
Window content will reload, then append plugin afterwards
2014-10-28 09:19:34 +00:00
Matt Pass
5b88f7172b If stats.js plugin is available, load it 2014-10-28 09:16:05 +00:00
Matt Pass
4c5583e191 Escape apostrophes for JS 2014-10-28 09:14:29 +00:00
Matt Pass
bafe89a7f3 Also lint diff pane on JS/JSON mode 2014-10-27 16:27:36 +00:00
Matt Pass
1942b3143d Load JSHint plugin if available 2014-10-27 16:26:38 +00:00
Matt Pass
28d03e07b5 JSHint removed, now a plugin
It was a fairly big file and updating to the newer version would be
400k.
So, this has been done but is now an optional plugin.
2014-10-27 16:26:17 +00:00
Matt Pass
6579378e19 Reworked render line and diff functions
renderLineStyle is now an array of style arrays
cMonScroll function added to move scroll position of other pane to match
The on('renderLine') event now covers all lines, a change since earlier
versions of CodeMirror
This means a reworking of code was needed here to firstly identify a
matching pane and then if we have a match, add the style. Done in a for
loop and considers array items in renderLineStyle
Reworked much of the updateDiffs functin to reset array & value to begin
with and push to renderLineStyle array now. Also only doing this if we
have a height higher than normal to set, for perf reasons
No need to set renderLineStyle to false anymore
Finally, sorted the order things happen into 2 logical sections - main
pane changes first then diff pane changes after
2014-10-26 07:10:46 +00:00
Matt Pass
8a57b241bd On scroll trigger cMonScroll function
Contains mouseDown=false and also function to match scroll position on
both panes
2014-10-26 07:01:18 +00:00
Matt Pass
ff39f44569 Update to match main JS file 2014-10-24 16:54:29 +01:00
Matt Pass
9ea459787e Polyfill added for array_replace_recursive
This is natively available in PHP 5.3+
2014-10-24 09:23:52 +01:00
Matt Pass
084269bf35 JSON highlighting also & set lint: true if JS/JSON 2014-10-22 12:20:45 +01:00
Matt Pass
b601ea0e85 lintWith is now lint and false by default
This initialisation should be false to start with as we set PHP mode as
a basis and have no linter for that
We set the mode in processes/on-editor-load.php and then lint: true if
it's a JS mode.
2014-10-22 12:19:49 +01:00
Matt Pass
574e71f5e7 Ignore temp session files 2014-10-22 12:16:49 +01:00
Matt Pass
8189985a72 Upgrade to CodeMirror 4.7 2014-10-22 10:23:20 +01:00
Matt Pass
bfc1babb64 Fix to path used here, needs pipes? 2014-10-18 22:17:39 +01:00
Matt Pass
4edbf8d79d Now running custom processes for all actions 2014-10-18 22:17:17 +01:00
Matt Pass
f411370e32 New processes added
To cover all actions in file-control now
2014-10-18 22:16:43 +01:00
Matt Pass
2ea0ae8793 Die if not logged in to protect files
Avoids risk of them being run by visiting URL when not logged in
2014-10-18 21:09:32 +01:00
Matt Pass
ed08585867 Last 2 params need to be applied to function 2014-10-18 20:54:47 +01:00
Matt Pass
15eba478ac Slice 4 chars from end (for less and scss)
The char position used by $fileNameExtPos is actually from the
beginning, not end, so is useless here
However, we know that 'less' and 'scss' are 4 chars, so we can just
slice off those 4 chars always
2014-10-18 20:38:31 +01:00
Matt Pass
16da2d6a88 Update to match main JS file 2014-10-14 18:04:47 +01:00
Matt Pass
0b7120633d Text in 2 panes now lines up via renderLine event
renderLineStyle and renderPaneShiftAmount added to store info for
renderLine event
Function added for renderLine event, applies styles to line if we're
rendering that one
When updating diffs, run a loop to mark text according to it's status of
replace, delete or insert
Here we are also setting styles ready for the renderLine function and
clearing when done
This last part sets the height of the other pane, so lines of text line
up and make sense visually
Update on switching tab and using new settings
2014-10-14 17:53:34 +01:00
Matt Pass
14ab734c96 diffNone class and renderLine event added
diffNone added as an empty class to allow a line re-render as it's added
renderLine event added, passing vars onto function in JS file
2014-10-14 17:47:42 +01:00
Matt Pass
414e814de2 Establish paths & call github.php with read action 2014-10-11 15:20:15 +01:00
Matt Pass
d14fae9dd4 Read action to get contents & add to diff pane 2014-10-11 15:19:36 +01:00
Matt Pass
114b7e5d10 Set mode on both main & diff panes 2014-10-11 15:17:41 +01:00
Matt Pass
4c27e23d80 Split pane, new functions and diff mode set up
New vars for splitPane, debounce and editorFocusInstance added
Split pane controls added and center themselves and can now trigger
single and split pane views
Editor functions added here for focus, blur, onkeyup, oncursoractivity,
onchange and oninputread, can handle requests from either main or diff
pane
updateDiffs function added which will show differences between 2 panes
using jsdifflib and markText
updatePreviewWindow now it's own function too
Many functions redone so they can also take requests from either main or
diff panes, by using thisCM instead of cM
getcMdiffInstance function also added
Diff pane also updated on changing settings and switching tab
2014-10-11 13:12:57 +01:00
Matt Pass
fbd8475b6e Handling split panes on file control
If GitHub diff mode, load the 2 JS files needed
Ask message shown needed escaped slashes so they appear OK in dialog
No longer open a new file for older version, we display now in diff pane
Temp code added in comment block re getting content from GitHub for file
to show in diff pane. This isn't working at present and probably just
needs a tweak to make work
Slightly renamed vars for active lines to handle 2 panes
2014-10-11 13:01:44 +01:00
Matt Pass
d348191a37 Handling split panes
Establish panes and which one we are looking at when running these
functions
Note: May need to not do this for switchMode, as the diff pane should
fall in line with the main pane
2014-10-11 12:58:03 +01:00
Matt Pass
3958742c12 Implementing split pane
Tab lines now 0.15 opacity as a tweak
diff pane set to 50% width and add, remove and change diff classes added
cMOptions established as object to pass through when initialising editor
instances
Code related to initialising and adding actions to editor instance now
moved to main JS file and we are just about doubling everything up for
the diff pane
New events added for focus and blur also, with functions in main JS file
Active lines also created for diff pane
2014-10-11 12:55:10 +01:00
Matt Pass
0e11386448 On setting GitHub diff to true, go split pane also 2014-10-11 12:46:19 +01:00
Matt Pass
ee1d3cfcc0 Diff and split updates
If the diff instance doesn't have focus either then we can go next/prev
tab
Load difflib.js file also
Split pane controls added, with split view being opacity 0.5
2014-10-11 12:45:54 +01:00
Matt Pass
491191ebde results text moved, now used by JS file
Also reworded text re reloading so it relates to the diff pane
2014-10-11 12:44:08 +01:00
Matt Pass
bf44a2515e Split pane control classes added 2014-10-11 12:41:28 +01:00
Matt Pass
869d184939 Pull actions to be added in v4.4 now 2014-10-11 12:40:44 +01:00
Matt Pass
401568677e Lib added to establish text diffs 2014-10-11 12:40:18 +01:00
Matt Pass
ea7a697e7d Icon added for split pane controls 2014-10-11 12:40:01 +01:00
Matt Pass
a029eceb9d Set session_save_path & fix logout URL
Some hosts have a loop around issue with no session being available
after a header location redirect
After much research, I've found this is due to some hosts not having a
session save path and it needs to be set using PHP
Setting this means ICEcoder works on those few hosts
Fix to bad URL on logout
2014-09-29 10:55:46 +01:00
Matt Pass
7ef86360d8 Version 4.3 2014-09-26 15:32:28 +01:00
Matt Pass
746b133a9a Filetype identification fixes & improvements
Look to fileExt to determine the file type by extension rather than
string in fileName which is the path. This means .c isn't mistakenly
picked up in paths such as /httpdocs/mydomain.com/file.rb
Simplified code with 2 improved ternary statements
2014-09-26 14:38:59 +01:00
Matt Pass
c141fc2864 Selected text + tab = indent auto
Instead of single tabs
2014-09-26 12:44:06 +01:00
Matt Pass
cc5cd166be Only if no headers sent, set the 3 headers 2014-09-26 11:59:03 +01:00
Matt Pass
2409bc19c2 Compile Sass and LESS on save if plugins available 2014-09-24 12:28:59 +01:00
Matt Pass
297e482b11 Recursive only if githubDiff, no anim if > 50
Only include github.js if in githubDiff mode
Only do recursive dir loading if in gitHub diff mode
Move folderItems splitting out of loop to avoid unnecessary processing
showFiles now begins the process of displaying files - animated into
view (using setInterval) if less than 50 items, or shows immediately (by
setting showContent and skipping recursion) if more
showNextFile() is a function to actually display a file or if the end,
kick off the process of adding deleted files/dirs
2014-09-23 18:40:49 +01:00
Matt Pass
46c1bdce02 Fixes to allow new items to be created
Store original $file value in $fileOrig
rtrim [NEW] from the $file path as that is messing with realpath
checking
Move debugging alert and console.log line into the for loop and use
allFiles[$i]
If a local path and not the doc root or parent dir starts with the doc
root
Check on $fileOrig when saving as
2014-09-23 16:49:47 +01:00
Matt Pass
be74745318 Links added for info on 2 types of auth token 2014-09-18 18:08:05 +01:00
Matt Pass
cd2e2747c5 Max length of 50 chars added to title 2014-09-18 18:02:03 +01:00
Matt Pass
3a7e728871 No autocomplete on the GitHub auth input field 2014-09-18 17:51:14 +01:00
Matt Pass
3db00273dd Version 4.2 2014-09-18 16:09:10 +01:00
Matt Pass
e47b21ce80 Don't check paths if we're uploading 2014-09-18 16:07:39 +01:00
Matt Pass
7adefd1ff0 die() after header to stop going any further 2014-09-18 15:43:48 +01:00
Matt Pass
1276e894b5 File/folder message instead and go back 2014-09-18 15:40:03 +01:00
Matt Pass
9c90ffea43 Replace \ with / when comparing with $docRoot
Windows uses backslashes in realpath
2014-09-18 14:33:15 +01:00
Matt Pass
1ace4e4ed9 Need a greater timeout here
40ms wasn't enough to begin filling the list and so would report back
that there are no changes, when in fact, there are, just not shown yet
2014-09-18 14:16:00 +01:00
Matt Pass
cf8a214a24 Make all paths abs and check realpath on each 2014-09-18 13:02:40 +01:00
Matt Pass
24ea1b108f Establish realpath test begins with $docRoot or die
No need to str_replace ../, as that isn't real protection, use realpath
instead
Always turn into a real path (we'll only pass relative paths here
anyway), and change \ to / on Windows setups
Only if file exists and begins with the root path do anything, die
otherwise
2014-09-18 10:57:41 +01:00
Matt Pass
3b0a00af02 Need to establish full $file path first
Otherwise we won't have a valid fullpath to find $docRoot in
2014-09-18 10:47:57 +01:00
Matt Pass
2ad6f7fbc8 base64.js not needed
Only needed for basic auth and we are using oauth tokens
2014-09-18 09:27:24 +01:00
Matt Pass
54dd10b3bd Font family needed for textarea 2014-09-18 09:15:46 +01:00
Matt Pass
cc62871815 Add section for pulls, display message re v4.3 2014-09-18 09:01:11 +01:00
Matt Pass
72da926a4d Display ICEcoder at a 1.0 scale
Displays without scaling on tablets and phones then. Not that it's
tablet friendly, but maybe one day.
2014-09-17 15:03:25 +01:00
Matt Pass
d2f34c50df Merge pull request #455 from xoofoo-project/master
Update french language
2014-09-17 14:58:57 +01:00
Matt Pass
8454d918e8 Warn if using over non https connection 2014-09-17 14:18:28 +01:00
Matt Pass
048577270b die() so we go no further
Clients can ignore this and continue. All headers should be followed up
by a die().
2014-09-17 13:38:00 +01:00
Matt Pass
113e045f26 realpath file, result in error if !exist / !docroot 2014-09-17 13:35:00 +01:00
Matt Pass
9c35206e3b realpath the file and die if !exist or !$docRoot 2014-09-17 12:54:24 +01:00
Matt Pass
a807e598fe realpath $fileName, die if !exist or !$docRoot 2014-09-17 12:46:33 +01:00
Matt Pass
fbfd58b788 Update to match main JS file 2014-09-17 12:11:39 +01:00
Matt Pass
4314ca2917 Path fixes for add and delete actions
When adding files, location should be a slash if not set
Remove any initial double slashes
When removing files, location should be blank if not set. Then replace
iceRoot with a slash, before reducing double slashes at start, slashes
for pipes and tack together with file to make the targetElem, which is
what we end up looking for
2014-09-17 12:10:18 +01:00
Matt Pass
f3b89056ac Load screen, path removal, tweaks & error handling
Show loading screen on clicking Commit button
Committed filepaths need to have pipes replaced with slashes
Splice from diffPaths or deletedPaths array so we remove committed files
Hide Loading mask if we don't have more to commit
Only display alert message and toggle GitHub diff mode if we have no
diff or deleted paths left to deal with
Error message is an object, so inform user that we'll console.log that.
2014-09-17 12:06:56 +01:00
Matt Pass
d887eca03c Chaneg path scope & check excludedArray first
treePaths, diffPaths and deletedPaths now all namespaced to top level so
we can access from elsewhere
Check we have excludedArray first before looking at it's index. This is
to avoid issues when switching in and out of GitHub Diff mode.
2014-09-17 12:02:13 +01:00
Matt Pass
9ba08fbf48 Stop if running old version
Shouldn't do this and could be a security vuln.
2014-09-17 08:54:27 +01:00
Matt Pass
15fe43098f Cover local and remote files, but avoid LFI 2014-09-16 18:30:34 +01:00
Matt Pass
05de070294 Die if we have a realpath file vs doc root mismatch
Stops LFI attacks such as:

lib/file-control.php?action=load&file=/..././/..././/..././/..././/..././/..././etc|passwd&csrf=4c43835566ee4e2x4a455df75a66c47f
2014-09-16 18:12:06 +01:00
kris
024e943d9f Merge pull request #7 from mattpass/master
update 06-09-2014
2014-09-06 02:43:26 +02:00
Matt Pass
f82914207d $t needed in function to display text 2014-09-05 22:36:01 +01:00
Matt Pass
941801078c Updated to match main JS file 2014-09-05 22:22:28 +01:00
Matt Pass
296eeff33d Translations added for find/replace area in English 2014-09-05 22:21:31 +01:00
Matt Pass
0715782e3a For now stop using translations on find/replace
Using non English test for now is breaking functionality
To be looked into and fixed, then these translations can be re-enabled
2014-09-05 22:17:40 +01:00
Matt Pass
44aca5ad1b Need to use array_replace_recursive()
This is the function needed to overwrite $text array ontop of
$englishText, including nested arrays
2014-09-05 22:07:26 +01:00
Matt Pass
d24a2745ce Case change on function namee 2014-09-03 06:14:50 +01:00
Matt Pass
8da637c650 Remove new line at EOF 2014-09-03 06:12:38 +01:00
Matt Pass
b9be8cb70d Remove new line at EOF 2014-09-03 06:11:54 +01:00
Matt Pass
99a9c7ef80 Case change only on function name 2014-09-03 05:34:20 +01:00
Matt Pass
744cfbad16 Fix to language ref array item 2014-08-31 07:01:23 +01:00
kris
2db030c772 update french language 2014-08-30 12:44:46 +02:00
kris
a7e4c28b2f Merge pull request #6 from mattpass/master
update 29-08-2014
2014-08-30 11:12:02 +02:00
Matt Pass
7115b9e22c Updated to match main JS file 2014-08-29 19:31:49 +01:00
Matt Pass
4cb2ac98d3 Deleted files show up now
Excluded array paths have slashes not pipes
Don't add deleted files to diffPaths array also, keep them seperate
Can't use a for loop to add deleted files, only adds last reference as
happens before a tickover
Instead use a setInterval as a loop, with k as the counter instead of j
to avoid confusion
Check if it's not excluded dir/file as an outer if statement, with path
fix for root
3 cases set up for adding deleted dirs/files in a sub-dir, plus folder
or file in the root
Clear the interval when finished looping
2014-08-29 19:28:42 +01:00
Matt Pass
28881db771 Path reference fixes
Replace iceRoot with nothing on location
If we have no location, it should be a nothing to start with, not a
slash
Use this.childNodes[1].id instead of made up hardcoded ref
onClick event added also, wasn't there previously?!
2014-08-29 19:22:39 +01:00
Matt Pass
7791fe21f0 Merge pull request #454 from koseelg/master
Update norwegian.php
2014-08-29 15:45:45 +01:00
Matt Pass
73148eabed Removed unneeded setting of thatNode 2014-08-29 07:23:21 +01:00
Matt Pass
5f0d7a5a19 xssClean needs HTML context 2014-08-28 21:28:51 +01:00
Matt Pass
86b62d52a0 Remove extra closing bold tag 2014-08-28 20:50:52 +01:00
kris
6c656f3b8f French translation in progress 2014-08-27 19:43:03 +02:00
kris
eaf466c2ce Merge pull request #5 from mattpass/master
update 27-08-2014
2014-08-27 19:19:48 +02:00
Matt Pass
4efb9732a5 Updated to include new translations 2014-08-27 17:35:37 +01:00
koseelg
f80eacbd32 Update norwegian.php
Done cosmetic changes .....
2014-08-27 14:15:27 +02:00
Matt Pass
7cb52f4fc4 Persian language update 2014-08-27 09:39:20 +01:00
Matt Pass
06fba7c7cb Merge pull request #450 from koseelg/master
Create norwegian.php
2014-08-27 09:36:15 +01:00
Matt Pass
9499e98066 Adjusted size of commit screen shown 2014-08-27 09:20:26 +01:00
Matt Pass
c2ec4b0ae3 Commit action added
xssClean call needs "html" context
Commit action added, displays screen to allow user to input the commit
title and message
Gets content of files ready and puts into textareas with IDs to be
picked up after cleaning up filenames
Start a github object with JS and push to GitHub, running through files
until it's done them all, and displaying error message if there's a
problem. If all is OK though, it simulates a CTRL-click to deselect file
and remove from file manager list.
When done, it will state it is switching back and switch back
2014-08-27 09:20:24 +01:00
Matt Pass
ac3f3c4328 CSS file started for github.php
This file now has display also (for commit actions)
2014-08-27 09:20:22 +01:00
Matt Pass
6857dadec5 ctrlSim added, GitHub nav and actions
ctrlSim param available to simiulate a CTRL key
In githubDiff mode, show the number of selected files and update button
and text colours
gitHubAction function added to call the github.php file with that action
in the URL in the centre of screen
Function also added to show/hide GitHub nav
Removed old alert message as we're much closer to being finished now
2014-08-27 09:20:18 +01:00
Matt Pass
9619dce24f Classes added for GitHub nav 2014-08-27 09:20:16 +01:00
Matt Pass
f10909160a On load, hide or show the GitHub nav
Dependant on top.ICEcoder.githubDiff being true/false
2014-08-27 09:20:13 +01:00
Matt Pass
693b871456 Set auth token in session, add GitHub nav
If we have set an auth token in the settings, need to set the session
var
Add the extra nav for GitHub
2014-08-27 09:20:11 +01:00
Matt Pass
4612e5036d Exclude .git dir 2014-08-27 09:20:10 +01:00
kris
abbc92d319 Merge pull request #4 from mattpass/master
update 26-08-2014
2014-08-27 01:00:41 +02:00
koseelg
dec62a3380 Create norwegian.php 2014-08-26 09:31:28 +02:00
Matt Pass
80216b434d Merge pull request #447 from lzh370/master
Updated Chinese translation
2014-08-22 10:45:16 +01:00
lzh
95b5126227 An error search drop-down box
If these two values ​​are translated into Chinese, will lead to a
drop-down box to select the Replace option, it canceled the translation.
2014-08-22 16:57:22 +08:00
lzh
34b34bcc88 Updated Chinese translation 2014-08-22 15:42:28 +08:00
Matt Pass
e41cb4dc09 Comma missing after array 2014-08-22 08:07:37 +01:00
Matt Pass
a6b45171ab Merge pull request #445 from Olliiee/master
Created germna.php file
2014-08-22 07:57:53 +01:00
Oliver
32e05ea8ac Missed the header 2014-08-21 21:53:16 +02:00
Oliver
0bbc9347aa Added new messages
added new messages
fixed some typos
2014-08-21 21:52:27 +02:00
Matt Pass
f4894fa838 LI shortcut added
CTRL+Alt+8 shortcut for <li>
Remove old, unused h4-h6 shortcuts from array
Help screen is a little higher to allow for the new shortcut
Minified JS file brought up to date
2014-08-21 15:31:33 +01:00
Matt Pass
34074e5e64 Dutch language initial commit 2014-08-21 14:44:30 +01:00
Matt Pass
d5bca0c38a Merge pull request #443 from lzh370/master
Supplementary Chinese translation
2014-08-21 14:37:07 +01:00
Matt Pass
f96651b9e8 Load English first, then merge lang ontop
It's English ontop of English for now, but 2nd include can be changed in
the code here and soon to be set via the UI.
2014-08-21 14:30:43 +01:00
Matt Pass
0d4ca6a483 Final language replacement placeholders 2014-08-21 14:29:11 +01:00
Matt Pass
195ba788bb JS lang items used and print pre wrap fix 2014-08-21 14:25:57 +01:00
Matt Pass
f5d19d99d4 Get the ice-coder lang array into a JS array
So the /lib/ice-coder.js file can make use of it
2014-08-21 14:24:30 +01:00
Matt Pass
115169b16b alert & console.log the action and $file
Commented out, but useful for people to uncomment to see what's
happening if path issues etc
2014-08-21 14:22:44 +01:00
Matt Pass
90a58f0300 Final English text items 2014-08-21 14:21:05 +01:00
Oliver
4e3d73e8b9 Create germna.php file
Added german language file.
2014-08-21 14:38:10 +02:00
lzh
cdd38a88d2 Supplementary Traditional Chinese translation
Improved Simplified Chinese translation of individual errors.
2014-08-19 12:52:52 +08:00
lzh
bc9639dac2 Supplementary Chinese translation 2014-08-19 11:55:01 +08:00
Matt Pass
38b7de4b5c Merge pull request #440 from xoofoo-project/master
Update french language
2014-08-16 21:11:52 +01:00
kris
1ee215516b Update french language
Even more definitions translated in french
2014-08-11 01:32:06 +02:00
kris
92c4ec0223 Merge pull request #3 from mattpass/master
update 10-08-2014
2014-08-11 00:25:27 +02:00
Matt Pass
aab3c5a433 Merge pull request #439 from xoofoo-project/master
Update french language
2014-08-10 21:11:05 +01:00
Matt Pass
ee9e053bb9 Even more definitions added
About 70% done now
2014-08-10 21:08:00 +01:00
Matt Pass
21ab41e677 Placeholder vars added for more lang pieces 2014-08-10 21:07:42 +01:00
kris
2d76f1f7f3 Update french language
More definitions translated
2014-08-10 02:23:30 +02:00
kris
9cd6f8ee8a Merge pull request #2 from mattpass/master
update 09-08-2014
2014-08-10 01:36:10 +02:00
Matt Pass
b8f02708e0 Chinese (traditional) and Italian added 2014-08-08 09:37:23 +01:00
Matt Pass
d201e85d86 Placeholder vars added for lang pieces 2014-08-08 09:30:56 +01:00
Matt Pass
ec05132fa8 Make array available in session
Used by files that don't load settings.php
2014-08-08 09:29:19 +01:00
Matt Pass
664d8058b5 More definitions added
For bug-files-check and file-control files in /lib dir
2014-08-08 09:26:38 +01:00
Matt Pass
87450c0f78 Renamed to '-simplified' 2014-08-08 09:25:50 +01:00
Matt Pass
84d1402eef Initial translations 2014-08-07 06:38:42 +01:00
kris
6746e0bc52 Merge pull request #1 from mattpass/master
first update 06-08-2014
2014-08-06 14:12:14 +02:00
Matt Pass
a0bc6e8c31 Undo 2 changes that shouldn't be committed 2014-08-06 09:30:13 +01:00
Matt Pass
5de4cd657e Language system setup and English translations
Covering top level and login so far only
2014-08-06 09:26:50 +01:00
Matt Pass
230e8a0983 Break in echo needs a ; and continue with echo 2014-07-31 16:28:04 +01:00
Matt Pass
3d66db04ae Working with GitHub diff mode
Now an HTML type file, had no doctype, header etc previously. Now does
and also loads in 2 x JS files for GitHub API control
Gets full list of files, considers .gitignore files and gets an excluded
list
Always has a GET location now, so no need to consider
If in GitHub diff mode, for each file in our list get file contents and
put the name, SHA and type into 3 arrays
Work out GitHub repo path and set up JS arrays the same as PHP arrays
Then start a github object and begin examining tree for differences
recursively, adding to arrays and removing DOM elems from branch DIV as
needed
With that done, we need to cover the dirs not yet opened and if they
contain no changes, remove them
Finally, remove .gitignore excluded filrs
showFile function set up mostly as per previous code, but now also adds
files that are deleted (ie, to make them show up in the tree)
Error catching and helpful messages and redirections added such as when
you have no diffs or used up your GitHub API rate limit
2014-07-28 07:00:56 +01:00
Matt Pass
6a81152b05 GH token set flag, new functions and tweaks
githubAuthTokenSet flag added, false to begin with
Refreshing file manager now just reloads, not loads hardcoded URL
New function added to ask for GitHub auth token
If set, it auth's with that token and also passes through the place to
go next. Clears token value too for security.
On attempting to show the GitHub manager pane, if we have a token set,
great, show it, if not ask for the token
On toggling the GitHub diff mode, if we don't have the token set, ask
for it
githubAuthTokenSet param passed in to update flasg
2014-07-27 12:54:04 +01:00
Matt Pass
c988f76612 auth action added
We can now call an auth action along with the token and it will set our
flag
As a follow up, it continues what we were previously doing - showing
manager pane or toggling file display
Note: 2 x JS files can probably be removed for now. Was going to look
into auth token validation here, but until I do, they're not needed.
2014-07-27 12:49:39 +01:00
Matt Pass
cc152db8ba Semicolon moved, githubAuthTokenSet if value set
CSRF value ends with a ; as per all other settings (moved from other
line)
If we have a githubAuthToken value (ie, set in our config settings
file), update top.ICEcoder.githubAuthTokenSet to true so we don't ask
user for it to be set in our session
2014-07-27 12:46:47 +01:00
Matt Pass
6fedd41ced githubDiff mode flag and root loaded by get-branch
Session var used as flag to indicate github diff mode
Instead of now including get-branch.php after setting the | root
location, we now set the src on the fileControl iframe, which does the
loading of the branch as with all other subsequent branches loaded
2014-07-27 12:42:12 +01:00
Matt Pass
64c2cfa06f Viewport set for mobile devices
Means at least the login screen is mobile friendly, just the rest of
ICEcoder to do now! :)
2014-07-27 12:39:00 +01:00
Matt Pass
82c80a24b2 Tooltips now blue to stand out more
Were going a little unnoticed by users previously
2014-07-27 12:38:20 +01:00
Matt Pass
504e2e20fe githubAuthToken setting added
githubAuthToken added as new setting
passed into useNewSettings function to update githubAuthTokenSet flag to
true
2014-07-27 12:37:36 +01:00
Matt Pass
21b4c8bc12 Github auth token setting added
Editor preview not as high and other options shifted up
Github Auth Token setting added with notes on usage
2014-07-27 12:31:12 +01:00
Matt Pass
f6aff03fb9 Setting moved and githubAuthToken added
pluginPanelAligned setting moved to position where it is in rest of
ICEcoder
githubAuthToken setting added
2014-07-27 12:29:58 +01:00
Matt Pass
30561cc2ae github.js, base64.js and underscore.min.js added 2014-07-27 12:27:19 +01:00
Matt Pass
e8035c122c Old settings that aren't last line end with comma 2014-07-01 14:17:24 +01:00
Matt Pass
69aec81200 indicateChanges() on 4ms delay after a save
To update the character in the browser tab
2014-07-01 12:56:57 +01:00
Matt Pass
9b55729c91 Session ID added to output 2014-06-30 08:01:08 +01:00
Matt Pass
d4131f3238 Tested die() again and works now
Removes the Linux Dash plugin just fine now, so reincluding this code.
2014-06-27 13:39:42 +01:00
Matt Pass
dbffc2925c Version 4.1 2014-06-27 11:22:47 +01:00
Matt Pass
8ec0d518ad Largely adjusted XSS protection
Adjusted to match that implemented by Ashar Javed
(https://twitter.com/soaj1664ashar, demo:
http://xssplaygroundforfunandlearn.netai.net/final.html). Was
unbreakable against 78k XSS attempts, so seems very solid
2014-06-27 11:22:32 +01:00
Matt Pass
3bf0e2e4db Return false after function 2014-06-27 09:54:39 +01:00
Matt Pass
4803eb2bac xssClean $_POST vars 2014-06-27 08:52:26 +01:00
Matt Pass
8509a62f06 Test $_GET['string'] before setting
Minor text adjustments
Only set the session var if we have no QS param
Fix str_replace on > char's
Delete unnecessary $configUsersTemplate line
2014-06-27 08:38:35 +01:00
Matt Pass
bc8d715a56 Test script added
Tests PHP version, session maintenance and include file inclusion.
Should help users who have occasional issues to pinpoint problems.
2014-06-25 16:03:18 +01:00
Matt Pass
b0fd03f571 Don't die if dir isn't deleted
If we fail to rmdir (perhaps a permission problem), don't die. This
silently continues and does leave empty folders behind, but stops things
from breaking until the solution is really found.
2014-06-25 12:49:29 +01:00
Matt Pass
a55102106e Need double quotes for die message 2014-06-25 11:43:50 +01:00
Matt Pass
78c3308686 Also white text on other die message 2014-06-25 11:38:55 +01:00
Matt Pass
fe6424a02b Show text in white, so shows on dark BG 2014-06-25 11:37:47 +01:00
Matt Pass
047a33a604 Snowflake char for unsaved state, not asterisk 2014-06-25 11:35:26 +01:00
Matt Pass
85e8d93190 GitHub diff toggle var & function added 2014-06-23 08:48:25 +01:00
Matt Pass
5c2e7c0adf GitHub icon shows if needed as toggle button 2014-06-23 08:45:05 +01:00
Matt Pass
d63c1bf2ca githubOn/Off classes added for icons 2014-06-23 08:42:49 +01:00
Matt Pass
36b03e840d GitHub icons added for on/off toggle states 2014-06-23 08:41:46 +01:00
Matt Pass
b7731e03ff Removed alert message, moved to JS function 2014-06-23 08:41:27 +01:00
Matt Pass
5c29bb106a Update JS iceRoot var after settings update 2014-06-19 08:59:56 +01:00
Matt Pass
52b29423d0 Shortcuts for insert line before/after added
Taller help screen needed as a result
2014-06-19 08:46:31 +01:00
Matt Pass
4707e15c12 Insert line before and after functions added
Triggered with shortcut keys (Shift+Enter) and (Alt+Enter) respectively
2014-06-19 08:41:06 +01:00
Matt Pass
484911c103 Multiple select shortcut info added 2014-06-18 16:52:36 +01:00
Matt Pass
5aa5dc82bb className gone, need to use type
className dropped by CodeMirror, need to pick up "error" from type
As it may not be there, we need to test for its existence and it's also
be part of a string eg "tag brackets error", so indexOf is needed
2014-06-18 16:52:01 +01:00
Matt Pass
5d4e22d363 Cursor set to end on replaceSelection calls
It's the default, but good to be specific
2014-06-18 16:50:03 +01:00
Matt Pass
d5b6355261 Closebrackets addon included
Auto adds closing brackets etc for pairs - ()[]{}''""
2014-06-18 16:49:02 +01:00
Matt Pass
f71a16552e Display sub-dir & file counts for dirs 2014-06-18 08:05:51 +01:00
Matt Pass
f2d06a1a2c Function moved to ICEcoder.indicateChanges() 2014-06-18 07:37:08 +01:00
Matt Pass
ed5f2259c3 Should be just the tab number passed in 2014-06-18 07:36:42 +01:00
Matt Pass
b344d1e91e indicateChanges function addded
Shows a * at the end of the title to indicate changes
Called on closing tabs and closing all tabs
2014-06-18 07:36:11 +01:00
Matt Pass
5f051baeca Process file added to be run on file save 2014-06-18 07:06:34 +01:00
Matt Pass
4122a90175 Indicate changes in title tag via * flag 2014-06-17 10:11:10 +01:00
Matt Pass
823c2c1b5f Make versionNo available in JS object 2014-06-17 10:10:51 +01:00
Matt Pass
5f778043e4 Now handles reloads on demand
If we're installing and the plugin needs a reload, confirm that with the
user and reload on OK, else reload iFrame only
If a plugin needs a reload, display that text below the plugin name, so
user is aware before installing
A little more padding on the td that contains the name to look a little
nicer and accomodate the possible extra line
2014-06-17 09:21:29 +01:00
Matt Pass
38c7885718 Do pesticide plugin on preview window open 2014-06-12 16:57:17 +01:00
Matt Pass
bada48ae76 Do pesticide plugin on save if not MD 2014-06-12 16:55:29 +01:00
Matt Pass
2624469d61 Include pesticide.js if exists, doPesticide on key 2014-06-12 16:54:09 +01:00
Matt Pass
40fbc83547 Merge pull request #404 from alelondon/patch-1
Update README.md
2014-06-07 14:33:46 +01:00
Ale London
284f5acfb7 Update README.md 2014-06-06 22:59:49 +01:00
Matt Pass
227e3cbb94 $tgtName var for path ref
$name is being used to stream data from zip's $data also, so was messing
with it's reference
Needed seperation of vars for different purposes
2014-06-04 08:08:08 +01:00
Matt Pass
362c9935bf Merge pull request #403 from RelaxedArcher/master
Added settings menu for multi-user and registration control
2014-06-04 07:47:09 +01:00
RelaxedArcher
58eebb15fb Added settings menu for multi-user and registration control 2014-06-04 03:01:48 +03:00
RelaxedArcher
10b6a3556f Added settings menu for multi-user and registration control 2014-06-04 02:46:03 +03:00
Matt Pass
77559afe60 GitHub processing script setup, clone added
Detect if SSL capabilities are available and if not, inform user what
they need to do.
On cloning, establish local and remote paths and if our root is in the
local list, establish the target, zipURL and zipFile path & name
Get the zip file over file_get_contents if possible, otherwise cURL.
Then unpack the zip into our local folder. The first entry will be the
folder inside of the zip, so we get the $dirName of that only to use,
this is removed from subsequent file paths
When done, remove the zip file and refresh the file manager to show the
files
2014-06-03 09:30:55 +01:00
Matt Pass
20f6e838ba Setup stylings for GitHub manager 2014-06-03 09:12:20 +01:00
Matt Pass
ffef82fe76 GitHub manager to add, edit/remove and choose
Establish local and remote paths plus get settings file contents
If we're choosing a path pair, get the number and the 2 chosen paths
(local and remote). Paths are not valid until checked if exist. Prior to
that, a mkdir is attempted if it doesn't with error reporting if that
doesn't happen.
If valid, set the new root path and reload the file manager
Adding and editing of local and remote array paths on postback also
handled
Page displays form & table so you can manage repo pairs along with
providing usage info
2014-06-03 09:10:55 +01:00
Matt Pass
3a98c3a457 Couple of code tweaks and new repPosEnd
Need to rtrim off the last comma and forgot to add table row start & end
tags
The end cut point is now githubLocalPaths, not previousFiles
2014-06-03 08:45:24 +01:00
Matt Pass
dabb9ba79c githubManager added
Now accessable from the file manager menu option
Clicking this sets the content of the mediaContainer popup display to be
an iFrame loading the GitHub manager and shows the blackMask
2014-06-03 08:43:48 +01:00
Matt Pass
f5cd2b46b9 Else & if conds added to get GitHub repo
Added an else condition to work with empty folders, establishes local
and remote paths and works out of the $iceRoot is one of our local paths
If so, inform the user their folder is empty and ask the user if they'd
like to clone the repo
If so, show the loading mask and call our GitHub script to begin the
process
2014-06-03 08:40:48 +01:00
Matt Pass
5e792b80a9 New arrays for GitHub paths 2014-06-03 08:20:15 +01:00
Matt Pass
020a95bd80 Slightly smaller logo 2014-06-03 08:19:19 +01:00
Matt Pass
13d63575f6 New logo added 2014-05-22 07:52:48 +01:00
Matt Pass
4870fe9560 Changes to fit in with CodeMirror 4.2
setLine is now replaceRange
New namespacing on folding
replaceSelection needs "around" param
removeLine deprecated, using execCommand('deleteLine') now
cursor.end set to 1000000 for consistency
2014-05-22 07:32:36 +01:00
Matt Pass
882e026f76 onkeyup own event now and fold changes
onKeyEvent is no longer a param function, now something set in an 'on'
event function
setLine now replaceRange
doFold is the new fold function, "brace" or "xml" string passed to it,
not an object now
codeFoldTag and codeFoldBrace vars no longer needed now
2014-05-22 07:26:00 +01:00
Matt Pass
2136ad1955 setLine now replaceRange, around on getSelection
setLine deprecated, now need to use replaceRange and pass 2 objects for
start & end (line & ch)
getSelection needs "around" param as default is now "end"
2014-05-22 07:13:30 +01:00
Matt Pass
fa97918684 Use doFold now, pass string instead of object 2014-05-22 07:07:39 +01:00
Matt Pass
05daab79c1 Rename function doFold and new namespace
doFold seems a better name, so renamed and rangeFinder var now foldType
New namespace convention on folding, also specifying type by foldType
2014-05-22 07:05:44 +01:00
Matt Pass
57a789f046 Use CodeMirror 4.2 dir 2014-05-22 07:00:18 +01:00
Matt Pass
61cc4b82f0 Update to CodeMirror 4.2 2014-05-22 06:56:32 +01:00
Matt Pass
a8168fed86 Include this lib file only once
Is called from headers.php also now, so don't want to error by calling
again (clashing function names etc)
2014-05-20 07:26:05 +01:00
Matt Pass
47af30e0b6 Include common settings and xssClean output
inlcude_once the settings-common.php file so we have the xssClean
function
Set $req to the xssClean'd value or blank
Also xssClean other strings that are output
2014-05-20 07:25:15 +01:00
Matt Pass
277dc67243 printCode function added
Prints current tab, though code flows off the page horizontally, needs
tweak to something.
2014-05-16 09:18:14 +01:00
Matt Pass
0e48b8d5a3 Only show this button text if enabled reg 2014-05-16 08:21:06 +01:00
Matt Pass
3bc4deac68 Merge pull request #397 from RelaxedArcher/master
Fixed an issue affecting registration in multi-user mode
2014-05-16 07:49:44 +01:00
RelaxedArcher
6a50c1ce2b Fixed an issue that caused registration to be always available while in multi-user mode 2014-05-10 02:30:22 +03:00
Matt Pass
55def4402a Version 4.0 2014-05-03 15:01:19 +01:00
Matt Pass
b23e2fe40b onClick show menu can begin 2014-05-03 14:36:20 +01:00
Matt Pass
8133adeab8 !isset($_REQUEST["csrf"]) is extra fail cond 2014-05-03 14:19:24 +01:00
Matt Pass
a470daf9f5 No need for other chars to be replaced
Impossible to output an XSS without < or > alone
2014-05-03 14:13:48 +01:00
Matt Pass
1a85a1ddc3 Display a more helpful & useful error message 2014-05-03 14:09:09 +01:00
Matt Pass
ab8ad37467 strClean $_GET value first 2014-05-03 12:08:30 +01:00
Matt Pass
b811cfe92f strClean $_GET['plugin'] and use that 2014-04-28 08:00:22 +01:00
Matt Pass
fa40d9dad7 Also attempt to get over https, then http
Supresses warnings on https attempt with @
2014-04-26 16:55:55 +01:00
Matt Pass
16c7e5d010 Attempt to get over https, then http
Supress warnings with @ on https attempt
Explode what we have afterwards
2014-04-26 16:54:11 +01:00
Matt Pass
d5e6fb041f Reverting to use http: instead of https: for now
file_get_contents won't get https: data for now
Need to look at resolving this
2014-04-26 16:14:27 +01:00
Matt Pass
f00686c679 If we have GET QS params, add &crsf=xyz to end 2014-04-26 16:12:55 +01:00
Matt Pass
45fef223ce Removed list of people, now on website 2014-04-26 14:59:53 +01:00
Matt Pass
89c811d140 Darker side text, blue links 2014-04-26 14:59:18 +01:00
Matt Pass
17ec5f517c Turn SSL verify peer off
https over CURL Won't work locally otherwise
2014-04-26 13:19:33 +01:00
Matt Pass
56511b66bb fileNavH not as tall anymore 2014-04-26 12:40:11 +01:00
Matt Pass
4f5ed727f0 https used and drop IGG crowdfund link 2014-04-26 12:25:32 +01:00
Matt Pass
75885aecf5 strClean now replaces javascript:
htmlentities doesn't cover : and str_replace on : is too vague
regex is case insensitive
2014-04-26 12:25:12 +01:00
Matt Pass
fa48d0d2f0 Strip ../ so we don't have dir traversal vuln 2014-04-26 12:24:01 +01:00
Matt Pass
ec44407e25 xssClean the displayed file/folder name
Using html filter
2014-04-26 12:23:29 +01:00
Matt Pass
394067ff07 Need <b> and <br> after cleaning and https used 2014-04-26 12:23:04 +01:00
Matt Pass
ed800a01ce https: used 2014-04-26 12:22:31 +01:00
Matt Pass
599af8d96b https: used and revised git command 2014-04-26 12:21:06 +01:00
Matt Pass
9a2881cd7b Remove comma 2014-04-24 12:10:17 +01:00
Matt Pass
6e7612d3ec Inform user they can't delete the root
Stops the root accidentally being deleted
2014-04-23 08:22:44 +01:00
Matt Pass
0413ec4414 xssClean using 'html' filter 2014-04-23 07:43:17 +01:00
Matt Pass
c88d4f46e3 Rewrite of xssClean function to be neater 2014-04-23 07:41:30 +01:00
Matt Pass
1306853e1e Cannot use $_REQUEST, should be $_GET || $_POST
$_REQUEST appears to contain other system info, need to check on the
existence of $_GET or $_POST data
2014-04-23 07:23:02 +01:00
Matt Pass
078068e252 Don't allow directory traversal 2014-04-23 07:12:13 +01:00
Matt Pass
69d8ddce77 Need to target on top.ICEcoder.xssClean 2014-04-22 09:25:18 +01:00
Matt Pass
3926d4468c xssClean function added & used by serverMessage
Replaces 5 x based HTML chars
2014-04-22 08:55:09 +01:00
Matt Pass
493950667b Clean tags from HTTP UA
Users can alter this, causing an XSS
2014-04-22 08:06:17 +01:00
Matt Pass
d6a7db8f3e xssClean function added
Had 4 different contexts, the first 2 alter parts of strings, the last 2
remove those parts
2014-04-22 08:05:40 +01:00
Matt Pass
d6fcf5a121 Need CSRF on URL called on logout 2014-04-21 08:32:22 +01:00
Matt Pass
328a8a9808 Adjustment to value, should just be nosniff 2014-04-21 08:15:34 +01:00
Matt Pass
0daf6c3081 Redo security headers 2014-04-21 07:57:41 +01:00
Matt Pass
1d5c74e424 Add CSRF and clickjacking protection
This header file included in all PHP files as first item.
CSRF checks happen on GET or POST instances
Security related headers also added to prevent clickjacking
2014-04-18 18:21:17 +01:00
Matt Pass
c6bb782118 Add csrf to end of all querystrings 2014-04-18 18:19:58 +01:00
Matt Pass
b45817ec65 headers.php included and csrf POST added 2014-04-18 18:10:50 +01:00
Matt Pass
a15dfda92c headers.php included and csrf POST and GET added 2014-04-18 18:07:49 +01:00
Matt Pass
6030e9a4ca This is now set, in headers.php 2014-04-18 17:59:27 +01:00
Matt Pass
a3c0243772 Include headers lib & csrf hidden form field
To help protect against CSRF and clickjacking
Also include hidden form field containing this for postback
top.ICEcoder.csrf also set
2014-04-18 17:57:54 +01:00
Matt Pass
3d89af7e17 Add trailing slash to path
Otherwise, will ignore files such as lib/plugins-display.php etc
2014-04-18 12:44:36 +01:00
Matt Pass
03655c4c4b Find config- files and update those
No longer using 3 hardcoded examples in array, but scanning the old dir
and updating files beginning 'config-'. That covers the .php and old
files also.
2014-04-18 12:21:49 +01:00
Matt Pass
acfcb6bf9d $context added & sub function to transpose
$context added as global so we don't get undefined
transposeSettings function added as sub function we can all with params
copyOverSettings is now a function which calls that sub function 3
times.
2014-04-18 11:39:14 +01:00
Matt Pass
57593d730f Now copying over users template & settings
Coping over system settings now won't set line if $thisKey is blank
2 more functions added to copy over users template and users settings
files. These are largely the same as copying over settings, so will make
a sub function and call will params as a next step.
2014-04-18 10:17:48 +01:00
Matt Pass
a141a4bdf5 Remove line breaks and extra tabs
Makes it easier to update in the updater process
2014-04-18 10:11:10 +01:00
Matt Pass
33e751027d Get rid of line breaks, puts settings onto 1 line
Makes it easier to update in the updater process
2014-04-18 10:10:05 +01:00
Matt Pass
e65d2b0805 Copying over settings now completed
Gets old and new settings info, counts through each line of new settings
and if we have a match on the old settings, copy that over if it's not
versionNo or codeMirrorDir.
Saves settings once the $content is established
2014-04-18 08:35:21 +01:00
Matt Pass
9d7f7f8e93 Start copying settings over
$updateDone = true moved to end of new function, copyOverSettings
Extra echo line in openNewZip and then calls this function
Get settings from old config___settings.php file
For now, for each one, get $key and $value
Need to save these info new config___settings.php file
2014-04-16 08:48:24 +01:00
Matt Pass
91f14785b7 Don't move plugins dir 2014-04-16 08:10:45 +01:00
Matt Pass
1267a3c895 String replace on beta in filename and fopen alt
Establish $remoteFile which replaces ' beta' with '-beta'
Add fopen method also as not everyone has cURL
Display die message if both of those fail
2014-04-16 07:44:29 +01:00
Matt Pass
0748f495df On moving files pass fileOrFolder with add action 2014-04-15 08:40:37 +01:00
Matt Pass
83f6c5cf53 Only move to different folder and 3 x bug fixes
Global iceRoot so it can be used
Escape apostrophe's in $fileName on upload
Establish $srcDir and $tgtDir and only consider moving if $srcDir !=
$tgtDir and $fileLoc != ""
$fileOrFolder now established on moving and passed as param to
updateFileManagerList
2014-04-15 08:39:46 +01:00
Matt Pass
1385d65a2b Use new fileOrFolder param to determin type
Rather than rely on a . in the name
2014-04-14 08:36:23 +01:00
Matt Pass
68e5e0b5a5 Specify if it's a file or folder on updating FM
folder on new folder
set $fileOrFolder on pasting, that is used then on updating
file on uploading
file on saving
2014-04-14 08:35:26 +01:00
Matt Pass
72e98816f0 Need to check dir exists before removing
Subdirs could end up being removed in a race condition via rmdir at end
of deletePlugin function
Tweak die error messages to indicate dir or file
2014-04-14 07:35:44 +01:00
Matt Pass
641ff79493 Only use location if iceRoot is blank
Because setting an root path has its own relative file path
2014-04-11 08:50:23 +01:00
Matt Pass
dff16e9b3f 8 new languages added
C, C++, C#, Go, Lua, Perl, Rust and Sass added
Perl has # comments (single & block)
Lua has --[[xyz]] for block, and -- for single lines
2014-04-10 10:04:29 +01:00
Matt Pass
7264deee67 8 new languages added
C, C++, C#, Go, Lua, Perl, Rust and Sass added
2014-04-10 10:04:28 +01:00
Matt Pass
f08552c5e3 Upgrade to CodeMirror 3.23 2014-04-10 10:04:26 +01:00
Matt Pass
b131ef1524 8 new languages added
C, C++, C#, Go, Lua, Perl, Rust, Sass icons added
2014-04-10 10:04:24 +01:00
Matt Pass
b6c16d938d Languages added, merged & removed
Go, Lua, Perl, Rust and Sass added
Less removed, part of CSS now
Julia no longer loaded as seperate lang file
2014-04-10 10:04:22 +01:00
Matt Pass
842d7e5b37 Julia lib removed, in main codemirror JS lib now 2014-04-10 10:04:21 +01:00
Matt Pass
91a28990e0 Upgrade to v3.23 & new langs
Go, Lua, Perl, Rust and Sass added
2014-04-10 10:04:19 +01:00
mattpass
7843b5fac6 Merge pull request #381 from darkgrin/server_addr_err
Fix error "Undefined index: SERVER_ADDR".
2014-03-31 18:15:51 +01:00
darkgrin
bdf3d6615e Fix error "Undefined index: SERVER_ADDR".
This is reproducible when we use php's built in server via 'php -S ...'.
2014-04-01 00:38:33 +08:00
Matt Pass
1c81713063 Break down into var and then array usage
Won't work this way on old versions of PHP
2014-03-24 07:32:23 +00:00
Matt Pass
12ced2c7fc Commenting on Erlang, Julia, Java and YAML
Using commentChar now to handle char used on commenting (# or % for
Erlang)
Erlang, Julia, Java and YAML commenting covered
Include Python also as forgotten
adjustCursor to be set to 1 on single chars, overriding 2
Cursor adjusting done here now, not in parent function anymore as
adjustCursor value not available from that scope
2014-03-20 14:36:39 +00:00
Matt Pass
43ddc3d78f Moved into sub function
adjustCursor not available from child scope
2014-03-20 14:33:08 +00:00
Matt Pass
400524169e Better Julia and YAML logos (switched with zip!) 2014-03-20 14:31:39 +00:00
Matt Pass
6b35c5dd2c Update to match main JS 2014-03-20 07:18:55 +00:00
Matt Pass
33b2c7a06c Should be an array, not a string 2014-03-19 19:05:07 +00:00
Matt Pass
04a11bdc4a Using CodeMirror 3.22 now 2014-03-19 18:48:16 +00:00
Matt Pass
9ee6a80209 Julia added as a seperate file as a temp measure
Not available in CodeMirror minification helper right now
2014-03-19 18:48:04 +00:00
Matt Pass
686813e6be 4 new lanuages added
Erlang, Java, Julia and YAML
Need to handle commenting
2014-03-19 18:47:37 +00:00
Matt Pass
08c17154a8 4 new languages added
Erlang, Java, Julia and YAML
2014-03-19 18:46:55 +00:00
Matt Pass
0beb6df2c8 Erlang, Julia and YAML languages included
Java is part of the C Like language group
Julia available as part of CodeMirror minification helper, seperate JS
file used for now
2014-03-19 18:46:28 +00:00
Matt Pass
68a08d9636 Upgrade from 3.20 to 3.22
Includes a load of good bug fixes plus Erlang and YAML and 2 new themes
- MDN Like and Pastel on Dark
2014-03-19 18:44:32 +00:00
Matt Pass
5ea9c857e9 Version 4.0 beta 2014-03-15 14:24:42 +00:00
Matt Pass
147a3863a6 v4.0 beta 2014-03-15 14:12:57 +00:00
Matt Pass
fba79948c8 Formatting with indents only 2014-03-15 14:09:31 +00:00
Matt Pass
29e5dc0eae Language related items moved to seperate files
Makes it easier for users to customise languages supported
2014-03-15 14:09:06 +00:00
Matt Pass
949e5790a3 Clear and set bug interval and minor tweaks
If we have a bug path, start checking on bugs, otherwise clear interval
(needed when removing the paths during our usage
Don't push into our array, but set the array params on our i counter
px needed on CSS values
If our timer is 0, fall into an else statement and clear the interval if
it exists
Return false after handling shortcut for fold/unfold line
2014-03-15 13:33:36 +00:00
Matt Pass
b05e3f73b1 Darker input field BG's
Remvove not seen red BG that we also don't want
Input boxes have a darker BG now
2014-03-15 13:24:42 +00:00
Matt Pass
5dbf7982ce Can now check o multiple bug files
Only attempt to get filesize if file exists
Checking for bugs now in for loop to get bugs for each file specified,
counting the number of files with new bugs also
Output with a heading containing the filename (path) also
If it's our first bug file found, write to it to overwrite what was
there before, if it's a subsequent file, append to the file
Remove commented values
2014-03-15 13:22:37 +00:00
Matt Pass
5a82761df8 Ignore tmp/bug-report.log 2014-03-15 13:13:54 +00:00
Matt Pass
748c378ff8 Revised people list and stopped setting true 2014-03-15 13:11:42 +00:00
Matt Pass
edf297305d Don't intval, revised to GitHub & Crowdfund link 2014-03-15 13:01:50 +00:00
Matt Pass
869e2eb206 Darker arrow BG now 2014-03-15 13:00:44 +00:00
Matt Pass
d2149be2ef Tweaked margin top
Was clashing with text above
2014-03-15 13:00:28 +00:00
Matt Pass
c9399446eb Revised install details a little 2014-03-15 12:58:43 +00:00
Matt Pass
e7aa4b4507 Use file_get_contents with CURL as backup 2014-03-08 22:09:22 +00:00
Matt Pass
a0e3a04d1a Close bug report without saving prev or asking
So we can get a new one on each bug icon click
2014-03-05 08:14:52 +00:00
Matt Pass
210c92b52c Only look on strpos if we have bannedFiles
Causes empty delimiter warning otherwise
2014-03-05 08:13:19 +00:00
Matt Pass
a6435ec894 No longer pass back these JSON values 2014-03-05 08:12:46 +00:00
Matt Pass
aab8e5cb3d Bug checking - restarting and working with sizes
Bug report path, sizes seen and sizes actual available to fill with data
On change of settings. establish new settings for bug file paths, timer
and max lines, then start bug checking again
Bugs icon will now open file in top.ICEcoder.bugReportPath and on doing
this, set bug icon back to OK icon as we've seen bugs now
Fix to name of bug checking interval so it gets cleared
bugFilesSizesSeen set back to new empty array
files value in QS needs pipes not slashes
filesSizesSeen now instead of filesMDTs as we're not working from mod
datetimes, but sizes instead
Only if the sizes seen length doesn't match the file paths length do we
push null values in
Commenting out/deleting old bits to clear up a little
2014-03-04 08:15:39 +00:00
Matt Pass
b0743473f1 Output bugs to bug report file
Load common-settings.php and get 3 x querystring params, exploding first
2 into arrays
$result is OK to start with, but if we have a file that's not available,
set it to error
If we don't have an error, the seen sizes aren't null and the seen and
actual sizes don't match, we need to get bug lines
Set $result to bugs and some vars to begin with
fseek, ftell and while loop to get chunks of content using pointer
movement methods. We also reduce $chars and $lines here to escape the
while loop as required
$output has line endings converted and trimmed, before exploding on new
lines and only getting last few lines, stitched back together with
imploder
The bug report is written, $tmpLoc established and all data put into the
$status array to feed back in the XHR response
2014-03-04 08:07:48 +00:00
Matt Pass
7b04a95eda Establish jsBugFilePaths and pass that
Was in wrong array format before (PHP array as string)
2014-03-04 07:58:20 +00:00
Matt Pass
4b8e40b20e File setup as a placeholder and hardcoded $result
This roughly describes what needs to be done here I think re using
what's in the querystring, what needs updating (the JS MDT array) and
what should be set at the end ($result).

You can change $result to off, error, ok or bugs to see the icon change
accordingly
2014-02-28 12:36:55 +00:00
Matt Pass
70ca67b3d5 Bug reporting initial setup
bugReportStatus added, off to begin with
bugFileMDTs also added to contain a list of modified datetimes for bug
files being checked upon
On init, startBugChecking()
When using new settings, pull through 3 x bug related settings so we can
restart service (to do!)
xhrObj setup to return cross browser XHR object to make our calls
openBugReport will look to bugStatusReport and display an appropriate
message, for now
startBugChecking is the main function. If we have a timer, clear any
existing interval and start a new one
That then builds up a URL to call, with null values if items don't exist
(for error handling later on - to do!). The MDTs will need something
other than push, as this will all be called after changing settings. Use
the i int instead to hard set each array key & value (after clearing the
array)
The XHR call is made using our object and on a successful state, we
parse the result to read and handle the bug icon changing before setting
the bugReportStatus value. Need to also handle other states & statuses.
The status is set to 'ok' on restarting the bug checking function
2014-02-28 12:31:56 +00:00
Matt Pass
f5be67675b New process available on bug check
This is called after results are established.
$results and $status available for use and example shows logging them to
a file
2014-02-28 12:19:59 +00:00
Matt Pass
b2117ece23 Bug icon added in 4 colours
grey = off, orange = error, green = ok, red = bugs
2014-02-28 12:18:58 +00:00
Matt Pass
56688c3836 intval indentSize and 3 x bug items added
indentSize now has intval applied so we don't end up with blanks, get 0
instead
bug file paths, timer and max line settings now saved, paths as array
and other two as int's
Saved at the end of the settings chunk
Also passed to useNewSettings function, so we can restart timer on
change (to do!)
2014-02-28 12:18:29 +00:00
Matt Pass
3192015816 [?] icons, moved items & bug checking settings
Various notes moved/added into title tags of [?] to keep things neat (as
per help/shortcuts screen)
Plugin and file manager items now side by side in DIVs
3 x bug reporting items added - file path, timer and max lines
2014-02-28 12:16:18 +00:00
Matt Pass
b6884e05cb info added as notes now tucked into [?] icons 2014-02-28 12:10:43 +00:00
Matt Pass
f159d3710f Slight tweaks to positions and bug icon added
codeAsssist, goLine and view  all moved more to the right to make space
for the bug icon
bug class added and displaying as off to begin with
2014-02-28 12:10:07 +00:00
Matt Pass
51d9865dfc 3 x bug reporting settings and new icon
Settings being echo'd out now much tidier and 3 new settings pushed into
ICEcoder JS object
Bug icon added to far right with title and onclick event, plus ID as a
hook for later
2014-02-28 12:08:40 +00:00
Matt Pass
ecffe3a43e Bug file paths, check timer and max lines added
New settings to be used by the upcoming bug reporting system
2014-02-28 12:05:27 +00:00
Matt Pass
ddd7924960 Terminal link and function removed
It's now an installable plugin
2014-02-24 09:12:06 +00:00
Matt Pass
93798fce93 Terminal removed, now a plugin
It's not a core part of a code editor, so moved back to being a plugin
again
2014-02-24 09:11:06 +00:00
Matt Pass
0ad8c80514 Line break added 2014-02-24 08:33:40 +00:00
Matt Pass
b4d2947709 Refine the install instructions 2014-02-24 08:32:01 +00:00
Matt Pass
95f146a1c4 Stop CodeMirror handling Ctrl + Up/Down
It goes to start/end of file and doesn't get to our move line up/down
function
2014-02-21 11:35:36 +00:00
Matt Pass
6aa3f45ef4 Tweaked message for first 2, added Dropbox
Removed help message from areas already being covered
Added Dropbox option also
2014-02-21 09:37:45 +00:00
Matt Pass
1bcc773bba Working with FM menu and new functions
Setup namespaces for nav and 4 x list ID's
No longer updating fullscreen icon on change of mode
accountH is now fileNavH
Set the width of the 4 x lists -60px of width of file manager
account DIV no longer there and use new spritesheet positions for lock
icon
undo and redo functions added, plus indent function to handle more and
less indenting
autocomplete function added also
searchForSelected function added too, so not part of key handling
function, but function called upon, removed voke.fm usage
No longer need to change opacity levels on file manager icons
Stop using rightClickedFile and instead look to last item in
selectedFiles array
Function added to show/hide file menu, includes fade in/out effect
Function to handle clicking on file manager icons removed
Manual is now shown in popup at larger size
2014-02-21 09:26:55 +00:00
Matt Pass
116f8bdff7 On context menu instead select file
Don't set rightClickedFile
2014-02-21 09:15:41 +00:00
Matt Pass
c83e375e20 Icons have new position in spritesheet 2014-02-21 09:15:09 +00:00
Matt Pass
c73bd8f66c Removed header and file icons, menu in place now 2014-02-21 09:14:45 +00:00
Matt Pass
91ea437f37 Empty header area, replace icons with menu system
Determin isMac near top of file
Replace rightClickedFile with the last item in the selectedFiles array,
so we can get rid of that var
Header is now empty of icons etc, those options in menus
Icons above file manager removed, now within menus
Menu top links and lists set up with mouse over and out actions to
show/hide and fade in/out
2014-02-21 09:13:12 +00:00
Matt Pass
5b71272bc3 Icons reduced down to just the 4 needed 2014-02-21 09:06:27 +00:00
Matt Pass
51098b1ea3 Getting rid of old icons
Now replaced by menu system
2014-02-21 09:06:08 +00:00
Matt Pass
02565fa3b8 Getting rid of rightClickedFile
Now using last item on selectedFiles array
2014-02-21 09:04:57 +00:00
Matt Pass
4ebed7f960 Now has shortcuts title, no need for manual link
It's now available from the new menu
2014-02-21 08:53:48 +00:00
Matt Pass
8668c9ee3b No longer check key, just reset cmdKey 2014-02-18 09:11:45 +00:00
Matt Pass
c80cbbdc0a onBlur also resetKeys 2014-02-18 09:09:25 +00:00
Matt Pass
1584a7d1a6 Updated to match main JS file 2014-02-18 08:33:32 +00:00
Matt Pass
62ec680dc0 Slightly taller help and 2 new shortcuts added
To lock/unlock file manager and fold/unfold current line
2014-02-18 08:33:22 +00:00
Matt Pass
3d8bd14774 2 new shortcuts added 2014-02-18 08:30:44 +00:00
Matt Pass
59a749c5ce Don't need to work out file name now
This was legacy code that made use of the file extension. We now just go
by there being a { on the line.
2014-02-18 08:28:54 +00:00
Matt Pass
4124d64a58 Also need iceRoot in $dest path 2014-02-17 08:09:30 +00:00
Matt Pass
39398cecae intval on the timer and also set to blank if 0
Stops users entering values such as 'm' or '0' and will need to be 1
min+
2014-02-17 07:57:38 +00:00
Matt Pass
7df2a8c0ac Default type is text, 2nd array defines 'other'
Changed the default type to 'text' so ICEcoder will want to open any
file in the editor to begin with.
This is overridden by the images array and the newly purposed 2nd array
which defines types to instead pop open in a window (doc, docx, ppt,
rtf, pdf ...etc).
2014-02-17 07:47:51 +00:00
Matt Pass
cb5d3d8b1a Retstrict changes to plugins to auth'd users 2014-01-30 07:34:44 +00:00
Matt Pass
8b30c8b2eb Add getting plugin data via curl as alt method
Not all servers can get external data using file_get_contents due to
security retstrictions
2014-01-21 16:38:29 +00:00
Matt Pass
272bc177ce JS window redir incase headers already sent
This file includes settings.php which puts out a couple of JS vars, so
headers already sent and as a result, this page dies and goes nowhere.
JS window.location setup as a failsafe to do the same in that event.
2014-01-21 13:49:51 +00:00
mattpass
7c230cf09a Merge pull request #346 from ciubotaru/patch-1
Great, thanks for the fix. Merged
2014-01-21 01:11:14 -08:00
Vitalie Ciubotaru
638c61e014 Update plugins-manager.php
PHP Notice:  Use of undefined constant plugins - assumed 'plugins' in /[removed]/_editor/lib/plugins-manager.php on line 176
2014-01-21 18:02:54 +09:00
Matt Pass
ae864faa84 Version 3.5 2014-01-16 14:50:10 +00:00
Matt Pass
bfea966a14 Replace on SCRIPT_FILENAME
By replacing on this rather than __FILE__, we have a full file path and
can actually exclude the current working folder
2014-01-16 14:15:34 +00:00
Matt Pass
58e7c5ec42 preg_replace to remove full path prefix
Use preg_replace to only replace the first instance on a full path to
make it local
Avoids str_replace replacing all instances in the string
2014-01-15 10:39:31 +00:00
Matt Pass
080aaea4f7 Exclude from FM if its the ICEcoder dir 2014-01-11 17:44:22 +00:00
Matt Pass
eb634555df Exclude the dir ICEcoder is running from
After globalling $docRoot and $ICEcodeDir, work out a $localPath for the
file we have a result for
If our results match, we are looking in the ICEcoder dir and should
exclude as a result
2014-01-11 17:43:17 +00:00
Matt Pass
d42ea6f54b Establish the dir that ICEcoder is running from
Used to exclude from file manager and search results
2014-01-11 17:41:14 +00:00
Matt Pass
3c4a0eba6d _coder and ICEcoder no longer part of arrays
These 2 values were originally set to exclude showing ICEcoder based
files in the search results and file manager. However, some users will
install ICEcoder to another dir name, so removed these hardcoded values
from here and excluding in a better way in both instances.
2014-01-11 17:39:46 +00:00
Matt Pass
a7f3205edb Use left/right value from pluginPanelAligned to 0 2014-01-11 16:40:44 +00:00
Matt Pass
71875e8f5b pluginPanelAligned param passed to function
Contains left/right value, sets left and right values on plugins DIV
2014-01-11 16:39:20 +00:00
Matt Pass
bccc613de0 Allow updating of pluginPanelAligned
Also passed param to useNewSettings to update in the current browser
session
2014-01-11 16:36:00 +00:00
Matt Pass
accf9b0936 Plugin panel aligned option added
Allows user to set it to be left/right
2014-01-11 16:33:24 +00:00
Matt Pass
aa5ee237c9 Removed left: 0 value, now set via settings & JS 2014-01-11 16:31:57 +00:00
Matt Pass
1024c3ff50 pluginPanelAligned option added 2014-01-11 16:30:09 +00:00
Matt Pass
1c915d81da Added loginRequired bool
So you can choose if you need a login screen or not, true by default
2014-01-11 15:49:31 +00:00
Matt Pass
31aceb7226 Refactored and improved settings.php file
Moved huge chunks of isolated code to their own files
Reordered and improved remaining code
Lots of die messages added to stop code continuing after a header
location
!loginRequired now also setting loggedIn = true as demoMode does
Boot user to new login page instead of back to this page
loginRequired added to final elseif condition
Added 2 big notes re probably showing he login screen and continuing
with what we're doing
2014-01-11 15:48:23 +00:00
Matt Pass
8f06223c07 Display of plugins now handled here
Handled here rather than in settings.php file
$onLoadExtras = ""; and $pluginsDisplay = ""; also set here
No need to recreate the plugins array from POST'd values, now picked up
from a page load
If isset($_GET['updatedPlugins']) then update the new pluginsOptional
DIV innerHTML, no need to also check if the DIV exists
Also restart the plugin intervals upon $_GET['updatedPlugins']
No longer tacking content visibility onto $onLoadExtras
2014-01-11 15:36:27 +00:00
Matt Pass
73047549a6 Login now on own page, seperated from settings
No longer part of settings.php
Alt tag added to logo
Form action is now to login.php
Tabbing and line breaking around username now improved for source code
reading purposes only
2014-01-11 15:18:47 +00:00
Matt Pass
ade86eda6b previousFiles and last10Files updated here now 2014-01-11 15:15:44 +00:00
Matt Pass
03c0842ba2 Common settings/functions now in own file 2014-01-11 15:14:04 +00:00
Matt Pass
5dcfe80e71 Update condition moved to own include file
repPosEnd also now to plugins, not previousFiles, as moved position in
array
Plugins no longer updated here
2014-01-11 15:12:18 +00:00
Matt Pass
3e0f41b585 Removed plugins from settings screen
Added anagnam to credits as he let kindly me use webspace to test fixes
Plugins removed from settings screen now, set via plugin manager
FM root input field moved up now plugins area has gone
2014-01-11 15:07:40 +00:00
Matt Pass
887c7c1873 Plugins textarea not part of settings screen now 2014-01-11 15:03:35 +00:00
Matt Pass
67ab6c8f9c repPosEnd now to previousFiles, GET QS on update
End point immediately after plugins is now previousFiles as plugins has
moved in the array order
Tacked ?updatedPlugins onto the URL so we can pick this up and know what
to also action in plugins-manager.php
2014-01-11 15:02:31 +00:00
Matt Pass
af0e81e690 Position of plugins array moved
It's now updated from manager, not from settings screen
2014-01-11 14:59:39 +00:00
Matt Pass
e54d735614 Set content vis onLoad, plugins DIV, zip optional
Set visibility of content onload here, not tacked onto end of
$onLoadExtras
$pluginsDisplay now wrapped in a DIV with an id as a hook so it's
updateable
Only if we have the Zip-It! plugin should we display the option to zip
the file, as the plugin is optional now
2014-01-11 14:58:52 +00:00
Matt Pass
d298de35cf Copyright 2014 now 2014-01-11 14:45:02 +00:00
Matt Pass
c55c154856 Added note re setting perms on plugins dir also 2013-12-29 14:45:21 +00:00
Matt Pass
4a36e1ec64 showManual section and pluginManager function
showManual function can now take a section param and append to iFrame
URL to target a section of the manual if required. Used from Plugin
Manager only for now.
pluginsManager is a new function to display the Plugins Manager on
demand
2013-12-29 14:44:56 +00:00
Matt Pass
53d712b0ba Plugins Manager added
Allows you to install/uninstall as well as update the details of
installed plugins
2013-12-29 14:41:18 +00:00
Matt Pass
801597f91f Link to plugins manager added 2013-12-29 14:32:15 +00:00
Matt Pass
af0de2020e Plugins removed 2013-12-29 14:29:25 +00:00
Matt Pass
1a5540de98 Keep the plugins dir 2013-12-29 14:28:21 +00:00
Matt Pass
bac9dd697c Plugins removed
Plugins are no longer supplied with ICEcoder itself but now available to
install/uninstall remotely
2013-12-29 14:28:08 +00:00
Matt Pass
62c28202a0 Version 3.4 2013-12-20 11:55:12 +00:00
Matt Pass
33b47df99b Upgrade to CodeMirror 3.20 2013-12-20 10:35:06 +00:00
Matt Pass
58075d175d Upgrade to CodeMirror 3.20 2013-12-20 10:33:55 +00:00
Matt Pass
581cef9550 New loading animation by @tobiasahlin
New, more modern loading animation created by @tobiasahlin
Less code and far more awesome looking
2013-12-20 10:16:34 +00:00
Matt Pass
d393018cd3 Use nohref and put into onclick event 2013-12-20 10:12:43 +00:00
Matt Pass
67a2c86173 Always show dev mode message & add note
Now shows if dev mode is on/off and which file is being used
Added note also about how to put it into dev mode as people don't know
about this
2013-12-11 06:43:02 +00:00
Matt Pass
8918abde7e Remove HTML tags
These only display in title and alt tags, so should just be plain text
2013-12-11 06:42:02 +00:00
Matt Pass
b1277ab4a8 Update to match main JS file 2013-12-11 06:26:41 +00:00
Matt Pass
b692360fb0 File added to download specified file 2013-12-11 06:24:44 +00:00
Matt Pass
bbd96d39ab Download function added
Takes file param and calls new download file with file in QS
2013-12-11 06:23:42 +00:00
Matt Pass
6fcb600fd9 Download option added 2013-12-11 06:22:04 +00:00
Matt Pass
0da9371c4d Move event added
If we're due to move a file and it's writable, rename it to new location
Call move event once done to update file list
Show message if we failed or clear server message if all is OK
2013-12-11 06:20:20 +00:00
Matt Pass
209fb3be48 Moving files by dragging now possible
moveFile function added - takes oldName and newName and moves to that.
Also performs tab renaming as per rename function
updateFileManagerList function has new move event to add at new location
and remove from old
dropFile function updated to kickstart all of this with new moveFile
function call
2013-12-11 06:16:12 +00:00
Matt Pass
2817e9c34b Update to match main JS file 2013-12-08 16:13:22 +00:00
Matt Pass
ffed16ef15 Only setOption if we have a CM instance
Only focus on editor if we have a CM instance
On dragging files/folders, get the path if a file, otherwise go with the
folder path.
If we have CTRL key down, copy the selectedFiles and paste to the
tgtPath just established
Display temp message about move function coming soon
2013-12-08 16:11:59 +00:00
Matt Pass
43cc344b8b Check if we have a CM instance before focus 2013-12-08 16:06:55 +00:00
Matt Pass
0a4c4f14eb stopPropagation event added too onDragOver 2013-12-08 16:03:44 +00:00
Matt Pass
61a22c060e onDragStart and onDragOver events added
onDragStart now selects the file/folder
onDragOver kills the default event, so we don't get the not allowed icon
etc
2013-12-08 15:47:41 +00:00
Matt Pass
1e322fedcd Event should be onClick with nohref
cursor: pointer also added for pointer hand consistency
2013-12-08 13:33:50 +00:00
Matt Pass
0da7ca2e4d Change of security related headers & comment out
The X-CSP was stopping Firefox from working, complained about a CSP in
Emmet
Changed the security items, then found none were needed, so commented
out
2013-12-08 13:17:43 +00:00
Matt Pass
f134eca08b Drag & drop files into editor fix 2013-11-07 09:05:27 +00:00
Matt Pass
6c717e995a Version 3.3 2013-10-31 18:23:17 +00:00
Matt Pass
07f5a9b548 Removed css lint lib
It relies on a 310k lib from Stubbornella. Far too big.
2013-10-22 18:24:06 +01:00
Matt Pass
951637127b Removed images, using base64 URIs now
No need to have these anymore
2013-10-22 18:18:30 +01:00
Matt Pass
6aa2d0e533 CSS hinting now on SQL, CSS and XML
Applied with a smarter approach to the code here
2013-10-22 18:07:32 +01:00
Matt Pass
82b6af34ca Now using CodeMirror 3.19 2013-10-22 17:52:09 +01:00
Matt Pass
d91ea35dfe Update from 3.16 to 3.19
(Includes updates from the recent set of commits)
2013-10-22 17:51:45 +01:00
Matt Pass
1e0ff0dfd6 Now includes css hint, css lint and sql hint 2013-10-22 17:51:11 +01:00
Matt Pass
7147373d86 Now includes css hint, css lint and sql hint 2013-10-22 17:49:47 +01:00
Matt Pass
d86326aca8 License update 2013-10-22 17:49:29 +01:00
Matt Pass
b37a723296 base64 URI images used instead of 3 files
Also fixes to white-space and removed other experiemental classes
(Marijn H did all this)
2013-10-22 17:49:16 +01:00
Matt Pass
7af428572d Main CSS file updates 2013-10-22 17:45:17 +01:00
Matt Pass
0c2962ca15 New theme 2013-10-22 17:44:33 +01:00
Matt Pass
fcc1af71ec Theme updates 2013-10-22 17:44:13 +01:00
Matt Pass
77b7a88651 Use FILEINFO_MIME instead to get mime type
FILEINFO_MIME_TYPE is only available on PHP 5.3+ and on some servers
it'll use finfo_open but then get nothing back using this newer param
option.
2013-10-13 13:22:44 +01:00
mattpass
f6e508fbff Change to git clone command
Changed to full URL to be accessable by all
2013-10-12 20:28:44 +01:00
Matt Pass
1ef5f94953 Add draggable, ondrag and ondragend to new LI's 2013-09-27 08:06:32 +01:00
Matt Pass
9fbf1e7504 Dragging with key, drop file, paste URL functions
draggingWithKey is new param, to indicate which key we have down while
dragging, false if no key
pasteURL is new function to paste a URL into the editor. If CTRL/Cmd is
down, add the protocol and // as a prefix
draggingWithKeyTest - another new function, this will work out a key
that may be down whilst dragging, For now we set to CTRL (for CTRL/Cmd)
or false but could take other keys in future
dropFile is a final new function, when dropping a file, it will do
something. If we're in the editor area, paste the URL, if we're in the
files area, we'll move a file (a future update here). Finally, we set
mouseDown to false as we may have crossed from one area to another and
the event wouldn't trigger and flag not set otherwise
Also setting top.ICEcoder.area on mouse move, very useful so we can work
with that info (in the case of dropFile above)
2013-09-26 18:28:39 +01:00
Matt Pass
c67d93e869 On drop, get mouseXY for area
Also now sets the area in top.ICEcoder.area, useful for other purposes
2013-09-26 18:19:48 +01:00
Matt Pass
57d96b0bf9 Files/folders now draggable
LI tags now draggable
On drag, test if we are dragging with a key down. Also focuses CM editor
to show the cursor incase we want to drop into code and we'll then know
position
On drag end, perform a dropfile function
2013-09-26 18:18:05 +01:00
Matt Pass
50d2dadea2 Added note for disabling XSS filter method 2013-09-26 18:15:22 +01:00
Matt Pass
bf755abbf4 Set a policy of allowing scripts on same domain
Chrome now has tighter rules via security auditorm this line needed to
allow x-frame script use
2013-09-26 11:55:54 +01:00
Matt Pass
ebc2764aab Update to match main JS file 2013-09-25 10:12:06 +01:00
Matt Pass
2912e351f5 savedPoints plus function removed and improved
savedPoints now replaces changedContent
It's role is also different - it contains the integer change num from CM
on load/save/revert etc. We can compare this against the current change
num provided by CM (changeGeneration) to see if content has changed
Removed redoChangedContent function. This was only called once (by
editor.php) on all keyup's and we used ropey key detection to set
changedContent. As we're no longer storing changed doc values, we no
longer need this, and as redoTabHighlight is already called on CM change
(much more efficient BTW), we now don't need this function at all
getcMInstance can now accept a tab number, 'new' string or nothing (both
those last 2 use selectedTab)
Wrap fMIconVis setting in an if condition so we don't try to set it when
doc isn't there yet
All instances of changedContent now savedPoints where it still remains
2013-09-25 10:06:47 +01:00
Matt Pass
f0e47e07bc Compare all docs savedPoints before window close
Now looping thru all instances and comparing savedPoints against
changeGeneration integers
If we find a non match, we have unsaved content
2013-09-25 09:54:03 +01:00
Matt Pass
ee917776f0 Set savedPoints on reverting, load or save
On reverting set back to the changeGeneration integer
On loading set to the new changeGeneration integer
On saving set to the current changeGeneration integer
2013-09-25 09:52:16 +01:00
Matt Pass
fe2719a6e3 savedPoints now plus compare to changeGeneration
Array is now called savedPoints and has different role to changedContent
Compare to changedGeneration when determining if a doc has changed
2013-09-25 09:49:06 +01:00
Matt Pass
0765ab378b Condensed screen layout & removed function calls
Left column of info display now 300px wide and also contains your device
info
Also removed some line breaks, result of this is a smaller screen area
needed, less likely to get double scrollbars using ICEcoder on smaller
screens
No need to call redoChangedContent anymore, removed that function
No need to set changedContent array. It's now savedPoints array, only
updated on save not changes
2013-09-25 09:47:38 +01:00
Matt Pass
0c9db2c573 Only do next/prev tab if CM doesn't have focus
Was falling back to this onMouseWheel when editor window was at top and
we scroll up or at bottom and we scroll down, resulting in suddenly
switching from scrolling content to tabs. This if condition fixes that.
2013-09-20 18:06:43 +01:00
Matt Pass
12a8f2e81c Wrap in if plus delays on findReplace
onKeyEvent actually happens on multiple events (keypress and keyup at
least)
Wrapped in an if statement now so we only trigger half the time, meaning
half the work, meaning improved usage
Clear any existing timeouts and set a new Timeout to trigger the
findReplace action in 0.5s
This means as you type it's continually clearing & setting timeouts
When you pause typing for more then 0.5s, then it'll trigger the
findReplace
The result is no lag whilst typing and giving find results within
inactivity time only
2013-09-20 17:33:11 +01:00
Matt Pass
ace40e0c29 Trigger function on mouseover, mouseout & click
Get rid of inline JS param setting and now call new showHidePlugins
function on these events
Added an ID to this so we can target this pane
2013-09-20 17:28:33 +01:00
Matt Pass
c9e163a2df showHidePlugins function added
Sets width and BG depending on wanting to show/hide
If we're showing, also perform an expand on the file manager incase it's
collapsed
(This is so we get to see both FM and plugins panes)
2013-09-20 17:26:57 +01:00
Matt Pass
93d717c1aa Version 3.2 2013-09-19 20:57:54 +01:00
Matt Pass
b3510dfb67 Remove empty lines on cursor move
beforeSelectChange stores the previous line number
On cursor activity now it works out if the line we were on would be
empty if we removed white space and if so, clear the line
2013-09-19 20:24:43 +01:00
Matt Pass
5c347829a2 Reduce content height by 2px for bottom bar 2013-09-19 20:22:49 +01:00
Matt Pass
89e34fb24e No margin needed on new icon 2013-09-19 20:07:22 +01:00
Matt Pass
9160b5cc8f Only CSS beautify if it's a CSS file 2013-09-19 20:07:03 +01:00
Matt Pass
00b02af6e6 New icon added
Couldn't wait for Sencha to get back to me about using their logo
anymore
2013-09-19 20:06:45 +01:00
Matt Pass
6701c18929 Paraiso light has lighter active lines 2013-09-17 09:53:02 +01:00
Matt Pass
659befd66a Updated to match main JS file 2013-09-17 09:48:26 +01:00
Matt Pass
424992a783 CodeMirror 3.16 upgrade & 3 new themes
Paraiso (dark & light) plus The Matrix themes
CodeMirror also includes XML hint now to make HTML hint work
2013-09-17 09:47:23 +01:00
Matt Pass
0ab6745704 XML hint included
XML hint needs to be included to have HTML hinting
margin-left added to offset border-left
CoffeeScript hinting added also
Extra function added to handle autocomplete on keypress with a debounce
timeout on 200ms
2013-09-17 09:25:18 +01:00
Matt Pass
927471e165 Settings 10px taller, offset tabs & autocomplete
Settings screen now 10px taller to help accomodate new Autocomplete
setting
Visible tabs have -1px margin left offset
Autocomplete updated live in session on settings change
2013-09-17 09:19:00 +01:00
Matt Pass
72cd067341 Settings screen 10px taller 2013-09-17 09:17:09 +01:00
Matt Pass
0128499d73 Autocomplete setting added
Saved when updating settings
Also updated in current session
2013-09-17 09:15:33 +01:00
Matt Pass
9c4a74c406 Tab margin offsetting and autocomplete setting
Tabs now have -1px left margin to offset 1px left border
Heading moved to side panel and some line breaks removed, to make way
for new setting
Autocomplete setting added, options for ctrl+space and keypress
ctrl option on this and also tag wrapper command now show as ctrl/cmd
Change margin-left value on change of visible tabs setting
2013-09-17 09:14:47 +01:00
Matt Pass
8e139c481c Autocomplete option set in JS from PHP 2013-09-17 09:10:34 +01:00
Matt Pass
45ad87c2eb Remove margin-bottom and decrease padding 2013-09-17 09:10:08 +01:00
Matt Pass
cee91cc2d3 AutoComplete setting added
ctrl+space default (can also be keypress)
2013-09-17 09:09:43 +01:00
Matt Pass
f4e2f24f65 JSON added as a supported filetype
Need to only add to array and a CSS classname
2013-09-16 08:30:52 +01:00
Matt Pass
f0da80b886 Can now provide a fileList to delete
Produces less code and opens this up to the API, so we don't just have
to delete selected files
2013-09-13 17:43:56 +01:00
Matt Pass
cf11fb5c3d Collapse plugins pane on clicking 2013-09-13 17:42:02 +01:00
Matt Pass
729b48566e Only attempt to beautify if we have a cM instance 2013-09-13 17:41:42 +01:00
Matt Pass
4f97378655 CSS Beautify plugin added 2013-09-13 17:12:50 +01:00
Matt Pass
1a848823c5 Added note about ISE and using 755 in that case 2013-09-13 16:19:29 +01:00
Matt Pass
526edbaca7 CSS overhaul cleanup
Combine transition properties to cover both, reduce time to 0.07s and
ease-out only
Remove .codeAssist input of 0 margin-top, not needed
Code Assist and Go to Line text now eee, matching find/replace text
Goto line slightly wide to accomodate 4 digits plus padding left of 4px,
no longer centre aligned
Remove old system classes, no longer there
2013-09-13 16:12:39 +01:00
Matt Pass
fa98c842d0 New tab now 22px wide after removing borders 2013-09-13 16:05:57 +01:00
Matt Pass
c7a0a4a493 New tab now 22px wide after removing borders 2013-09-13 16:04:34 +01:00
Matt Pass
cfa3fd69e0 Property-fix - should be border-left-width 2013-09-13 16:03:17 +01:00
Matt Pass
e3bc4db204 Syntax formatting tweaks only 2013-09-13 16:01:39 +01:00
Matt Pass
6589e819f4 Property fix - should be border-left-width 2013-09-13 16:00:15 +01:00
Matt Pass
eefaebace8 Updated to match main JS file 2013-09-12 17:52:34 +01:00
Matt Pass
35887450ce Removing some old bits
fmLock no longer a DOM elem at this level
removed footerH altogether now
Altered some hardcoded values for header and account heights
2013-09-12 17:51:39 +01:00
Matt Pass
0f74645173 Removed unneeded px 2013-09-12 17:50:27 +01:00
Matt Pass
3388e090bb Remove dup margin-left, should be 3px 2013-09-12 17:50:09 +01:00
Matt Pass
1d50425de1 Tabs have border-left instead of content arrow
To now provide lines to show indentation
2013-09-11 17:09:01 +01:00
Matt Pass
4b69c44559 Complete revamp to give a flat design style
Plugins class added for pane & on z-index 3 so above everything else
here
Header now only 20px high and z-index lowered to 1
Version now called logout as it doesn't contain version no anymore, now
absolutely positioned
Files on a higher z-index and has no drop shadow now
Account is taller, tho not as much margin-top and same colour as files
pane, so blends in
Account icons moved, adjusted and removed
Close all tabs and alpha tabs only have BG on hover and it's lighter too
newTab doesn't have borders to left & right now
Find & replace elems have complete reworking to make them straight with
less styling
Selects, checkboxes & inputs have new, non standard look
Tabs no longer have border radius on top
Footer on lower z-index than file manager pane now
Removed inset box shadow from all textboxes
2013-09-11 16:41:03 +01:00
Matt Pass
c673beab9d Old tools & plugins removed from header
These are now in their own side panel pane, not in header
2013-09-11 16:29:01 +01:00
Matt Pass
ce5b63a91c Revised layout to simplify & give flat design
Plugins panel added, expands into view on hover
Remove other clutter from page to simplfiy such as version number, old
view page icon and system tool area to bottom right
Lock now part of the file manager
All 3 select dropdowns are now styled using CSS tricks, as is the
checkbox
Preview now to right of go to line
2013-09-11 16:23:51 +01:00
Matt Pass
660d44cd76 Removed system area & old viewPage link function 2013-09-11 16:13:33 +01:00
Matt Pass
3922ffcafb Changes to fit new style and bug fixes
More subdued tab colours for normal tabs (BG & FG)
Slimmer header and no footer to consider
No need to set margin left pos of lock, it's moved to within files.php
For this reason, we need to change our DOM targeting
Only focus or do CSS colour blocks if we have cM
Because the file manager is now the whole height we no longer consider
if the Y mouse is > 40 or < 30 from bottom
Checkbox now styled and using a BG, so set the pos on change
2013-09-11 11:16:07 +01:00
Matt Pass
6d84279d46 Lock added to file display, above refresh icon 2013-09-11 10:59:24 +01:00
Matt Pass
bfbac046db No need for top margin
File manager list now moved upwards
2013-09-11 10:58:57 +01:00
Matt Pass
3d071d8687 Lock now part of file display area
People overlooked the lock icon and then asked how they could collapse
the file manager
By having the lock within the display area it should bring more
visibility to it
2013-09-11 10:58:22 +01:00
Matt Pass
330d668d07 Line breaks after plugins
Now laid out vertically rather than horizontally
2013-09-11 10:57:00 +01:00
Matt Pass
d07b5c550c New icons added to tie in with new style
Terminal now in side plugins bar, select dropdowns and checkboxes styled
2013-09-11 10:56:34 +01:00
Matt Pass
3fbbeb0c5d Improved icon to work on a dark BG 2013-09-11 10:55:15 +01:00
Matt Pass
637a853141 New close all icon and revised alpha tabs icon
Close all icon is black, so needs to be a different image to standard
close icon
Alpha tabs icon is now < > arrows rather than an A symbol
2013-09-11 10:54:40 +01:00
Matt Pass
28387df059 Revised file manager icons
Also added flat design alternative
2013-09-11 10:52:50 +01:00
Matt Pass
6765770dea Revised & reduced plugins
Removed Dochub, Regexplained, TinyPNG, Voke and Wireframe CC plugins
(they were only URLs to useful services, didn't integrate with ICEcoder)
Remaining icons revised alpha channels where needed to work on dark BG
2013-09-11 10:51:47 +01:00
Matt Pass
43d22c40a8 Ignore old and new files in tmp 2013-09-11 10:48:48 +01:00
Matt Pass
438aa25cc1 TinyPNG compressed images.
Reduced by about 83%, from about 3.2k to 600 bytes
2013-09-05 18:37:32 +01:00
Matt Pass
98a340a751 Version 3.1 2013-09-03 08:26:22 +01:00
Matt Pass
568cb08e4a Check if lib/settings.php exists first
Because we may include this file from a couple of dirs and I'd rather it
continued to be run from lib/settings.php. By doing it this way round,
we're ensuring this, as lib/lib/settings.php won't exist.
2013-09-03 08:10:21 +01:00
Matt Pass
93c76533d6 Undo a few CodeMirror stylings on lint icons
Reuse my 3 x PNG files again
2013-09-03 08:09:00 +01:00
Matt Pass
64a7520466 Initial updater script
Stores old versions with timestamp in dir name
Copies new version into a new dir
Detects & downloads the latest zip file
Unzips and if all went well, directs to the new version
Provides info on it's progress and also a message if things go wrong
2013-08-30 09:06:00 +01:00
Matt Pass
1b7d647d60 Allow settings to be called from root or a dir
By doing this we don't end up with a lib/lib path issue
Used longhand if else statement instead of ternary for clarity
Also added die to stop it going any further and having a new header
location replace this one
2013-08-30 09:01:10 +01:00
Matt Pass
046bec29b2 Update function added
Shows confirm message and then either auto updates or opens ICEcoder
depending on user clicking OK or Cancel button
2013-08-30 08:35:59 +01:00
Matt Pass
13df17f236 Update button added
Clickable to the new update() function
2013-08-30 08:33:28 +01:00
Matt Pass
631de2350d tmp folder added to store temp files 2013-08-30 08:31:57 +01:00
Matt Pass
aa8ac56ff7 Install details now include write perms on tmp 2013-08-30 08:31:37 +01:00
Matt Pass
8df54367c5 2 new themes are light, need grey current line
3024-day and base16-light
2013-08-11 17:18:53 +01:00
Matt Pass
a194aad9e9 Fix size of the shown select menu
New options with longer names caused options to the right to shift along
2013-08-11 17:17:53 +01:00
Matt Pass
fd2197eace SQL mode added
Chose MySQL as the default dialect, others possible so added a comment
on that
2013-08-11 17:07:50 +01:00
Matt Pass
c0983e0a62 Update to v3.15, new themes and SQL mode 2013-08-11 17:04:53 +01:00
Matt Pass
4df33254d0 Moved the placement of tagWrapperCommand
To fit in with placement on settings screen and match settings file
2013-08-11 16:05:34 +01:00
Matt Pass
1c7fb3b61c Lowercase like other settings 2013-08-11 16:04:45 +01:00
Matt Pass
c592e704ba Minor tweaks only re tag wrappers
No need to hardcode setting in the main ICEcoder object
Moved function param for tagWrapperCommand placement
Minor syntax tweaks for consistency
Also removed now old comment
2013-08-11 16:04:25 +01:00
Matt Pass
e92662fd9b tagWrapperCommand setting moved
Needs to be in the section updated by settings.php, ended up with
duplicate array settings
2013-08-11 16:02:20 +01:00
mattpass
1dbc102cfc Merge pull request #304 from pushreset/alt_left_tag_wrapper
Great. May make a couple of small tweaks but overall seems good. Many thanks.
2013-08-11 06:42:23 -07:00
pushreset
65c77f7d93 Choose tag wrapper combination 2013-08-10 18:22:55 +02:00
Matt Pass
e715d02ea1 Can now move multiple lines up/down
Also added comments to help with understanding
2013-08-09 09:06:31 +01:00
Matt Pass
e5fac3efa3 XML added as a filetype & nest indicator fixes
Nest indicator now works with XML too
Set cx as false and then set if we have a matching object structure
Do nest indicator even if we don't have a html or body tag, as we may
have XML
Always show 'content' after the nest tags, except if it's JavaScript
2013-08-09 07:35:44 +01:00
Matt Pass
4eb6d699c1 XML added as a filetype 2013-08-09 07:32:25 +01:00
Matt Pass
5c80c1eb94 Call upon CM's redefined object structure 2013-08-09 07:31:31 +01:00
Matt Pass
60cbfd486c Call switchMode after saving
So it colors code after saving new files, renames to a different file
type etc.
2013-08-07 20:09:43 +01:00
Matt Pass
a5b36447b3 Updated to match main JS file 2013-08-07 18:55:32 +01:00
Matt Pass
ce62da5b5c Populate new results bar. plus tweak & bug fix
lineCount and charCount are var's no longer used, removed
Add scrollBarVisible var, is true or false depending on if we have a
scrollbar
Removed numChars and charsToCursor vars as we're now using
cM.indexFromPos which gives the same result, but using CodeMirror so
probably more efficient
A new ICEcoder.resultsLines array is now available, populated with
unique line numbers of found results
4 other new vars added for new functionality and also filesQS which I'd
missed adding before
New functionality to create colored blocks and add into the container,
at heights determined by the amount of content and colored according to
which line we're on
Else clause added to clear results and this container if we have a blank
find string
2013-08-07 18:47:21 +01:00
Matt Pass
5e4a185e9d Add a results bar to the editor 2013-08-07 18:23:52 +01:00
Matt Pass
08765c7957 Ignore config-*
Don't be as specific to include .php too, because we want to exclude
.old also
2013-08-07 18:22:27 +01:00
Matt Pass
28e71adaf5 Reduce heading tag wrappers down to h1-h3
This is because AltGr+4 is used by { on French keyboards, it's a $ on
Turkish keyboards etc
Many people won't go beyond h3 anyway and so it's best to have h1-h3 and
have AltGr+4 working as expected for non English keyboards
2013-08-05 16:28:29 +01:00
Matt Pass
ea79d2900e Version 3.0 2013-07-25 08:34:47 +01:00
Matt Pass
28c59f88e9 No line param on function and tweaked comment 2013-07-25 07:59:26 +01:00
Matt Pass
fb3dc200fb Base16 Dark theme added 2013-07-25 07:59:01 +01:00
Matt Pass
e7223c96b7 2 new contributors added 2013-07-25 07:21:31 +01:00
Matt Pass
90a531d2a8 focus method added and only actions if not iThing
CodeMirror focus method was causing no keyboard issues on
iPad/iPhone/iPod
All focus() calls nowrunning through new focus method, which acts as a
single point to do this
Will not do this if iPhone|iPad|iPod test is true
2013-07-25 07:17:09 +01:00
Matt Pass
1f1c71b218 cmdKey flag setup & usage
Also slightly taller help screen as Ctrl+space shortcut is added
Also resetKeys on open webpage or get info window
2013-07-24 08:27:16 +01:00
Matt Pass
b39fdaca95 cmdKey added as alternative to ctrlKey 2013-07-24 08:24:33 +01:00
Matt Pass
65039feeba Cmd/Ctrl shortcuts, Ctrl+space added and [?] info
Now showing Cmd or Ctrl after detecting if we're on a Mac from User
Agent
Ctrl+space shown as a shortcut now
[?] added after a couple of shortcuts that require popups to be enabled,
title used as tooltip
2013-07-24 08:23:51 +01:00
Matt Pass
c62dabc3e3 Mac shortcuts shown if appropriate
Detect Mac on User Agent and show Cmd/Ctrl as appropriate
2013-07-24 08:12:33 +01:00
Matt Pass
b1f22c4421 Find bar same color as gutter and editor now 2013-07-23 08:55:31 +01:00
Matt Pass
2814739c1e Toned down colors by 20%, gutter BG color change
Also toned down line numbers
2013-07-23 08:55:05 +01:00
Matt Pass
d2cb97ab0a Comments added and a couple of fixes
Condensed code on checking if find or replace are the active elements
Fix to remainder string used by function snippet, needed 1 char more
2013-07-22 09:05:06 +01:00
Matt Pass
98514ac46f Set highlights once folder anim done
Was previously attempting highlights on folder open, needs to be when
anim is done
2013-07-21 19:00:01 +01:00
Matt Pass
aaa10a5fff File menu won't get cut off & minor syntax tweaks
Remove unused vars & whitespace
File manager menu won't get cut off if we trigger it near bottom of
screen. Now works out height of it and takes that into account so the
bottom sits 5px from the window.innerHeight bottom
Redo working out chPos in a more logical way
Tidy up formatting etc and add comments
Only run file.replace once, set in var
2013-07-21 18:51:13 +01:00
Matt Pass
49c3f0e4bb Consider undo history size don't just set to 1
Need to consider if we've undone back to the start instead of just
setting 1 here
2013-07-21 18:46:57 +01:00
Matt Pass
673c779ca5 Condense, improve, reduce & fix find/replace
Only action replace on buttonClick (same as replace all), as having a
result selected and changing replace value can replace selection without
a button click, which is undesirable
if condition was wrong, should be based on if we already have that char
ref point in ICEcoder.results
Remove old code re counting no of chars previous to cursors line, and
other old chunks of code that seem to do nothing
Use a much shorter and more efficient way to count chars to our cursor
now
Same for building up filesQS, just join the array values with a colon
2013-07-18 18:04:45 +01:00
Matt Pass
8c74c7a77c autoOpenFiles if fmReady
New fmReady var, set to true when the file manager is ready
An interval is set up and auto opens files as soon as this var changes
Simplifying for loop
2013-07-18 06:50:07 +01:00
Matt Pass
376d564004 Set $GET location to generate branch
We're now using branch generating for the root on init, so we use the
same single system.
We also get the animated effect on init of the root as a result.
2013-07-17 13:33:47 +01:00
Matt Pass
26f3265299 Hide branch DIV, set fmReady to true once
The branch DIV is now a temp DIV only and not seen. Previously it was
seen onload of ICEcoder as the display of the root. However, there were
inconsistencies in line returns etc and so now even the root has a
branch built for it on load. ie, the init load and branch generating use
the same system.
Set fmReady to true if not when finished animating the folder. This only
happens on load of course and means we run init afterwards
2013-07-17 13:32:24 +01:00
Matt Pass
d3d5554969 Lots of minor tweaks and code condensing
Text and comment improvements and additions in many places
Can now just use window.innerWidth/height, no need for ternary condition
Simplifying an if and ternary condition
contentCleanUp should happen on all files
Put the line swapping into 1 operation so an undo makes sense
Replace document.getElementById() with top.get() in many places
Add/remove vars to avoid global leaks/clear away old vars
Use break instead of escaping through var setting
Add != "/[NEW}" to if condition so we can open multiple new files
Remove old code re switch tabs to open file, this is handled by isOpen
if condition now
Condensing a lot of code on deleteFiles function
Condensed code a little on showMenu function re folderMenuItems
2013-07-16 17:41:12 +01:00
Matt Pass
5ea3854043 Change info to refer to new location of setting 2013-07-16 17:32:22 +01:00
Matt Pass
ca08a101d1 Note on using CTRL+J to jump back as well 2013-07-16 17:32:02 +01:00
Matt Pass
d4de692822 Replace www. in settingsFile name
Means both www. and blank subdomains share the same file
2013-07-12 07:38:21 +01:00
Matt Pass
2dc702efc6 Animate folders & files into view
Shows a new folder/file every 4ms to give the impression of animating
into view
2013-07-11 09:50:41 +01:00
Matt Pass
8601363d46 Don't focus if we press space in replace field 2013-07-11 07:41:31 +01:00
Matt Pass
110a342bb1 Style tweaks & lint obeys codeAssist setting
solarized and xq-light themes should have lighter active line
foldOff should be a white block with very low alpha, so it looks good on
themes with a light gutter
We should only JS lint if we have codeAssist on (and it's a JS file)
2013-07-10 17:32:32 +01:00
Matt Pass
e4caebc368 Updates to match main JS file 2013-07-10 17:30:10 +01:00
Matt Pass
934d353537 codeAssist set from settings, fixes to updating
codeAssist is now set along with other settings in index.php
solarized and xq-light should have lighter active lines too
If codeAssist isn't the same as out session setting, set it to the
updated setting and toggle the switch
Adjusts to CSS stylesheet targeting. New CSS file meant it's now
position 4 in the array and child item 4 where we'll find the content
style
I also changed background to background-color on the activeLine style
2013-07-10 17:29:58 +01:00
Matt Pass
11465d1946 codeAssist now set along with other settings
Also applied to checkbox so not always starting as checked, obeys user
settings
2013-07-10 17:25:55 +01:00
Matt Pass
fdc5bc34fd Tweak to if condition to not convert UTF8
Otherwise we are UTF8 encoding the UTF8 encoding and special chars can
get messed up
2013-07-10 16:18:59 +01:00
Matt Pass
10a91df31c No longer needs script tag
It is called from within a script
2013-07-10 07:44:02 +01:00
Matt Pass
c503830c25 Update to match main JS file 2013-07-08 13:25:33 +01:00
Matt Pass
0195524f17 Condensing & improving code
Alt added to logo
Outputting the Twitter list in a shorter way
Imploding 4 sets of array items instead of using a for loop
2013-07-07 15:43:47 +01:00
Matt Pass
c2ce4bed8f Help screen 50px less, only focus if not in find
Also only focus if we have an open file
2013-07-07 15:42:36 +01:00
Matt Pass
fd8b77a9df Use get function where possible 2013-07-07 15:38:58 +01:00
Matt Pass
4b83741dbe Refresh icon now has a fixed position
Was in slightly different positions in different browsers
2013-07-07 15:38:17 +01:00
Matt Pass
ab5fbe8a9c Reworded a lot on the help screen
Revised a lot of the wording here to be clearer about usage and be more
in line with new functionality
2013-07-07 15:37:44 +01:00
Matt Pass
30aef59c55 Change prefixes, tab heights
Making steps towards supporting IE by adding ms as a prefix
Remove moz prefixes as it now supports transform
Remove webkit and moz transition prefix variants, supported as standard
now
Tabs and new tabs now have a height to standardise across all browsers
(Firefox and IE showed 1px gap)
2013-07-07 15:34:29 +01:00
Matt Pass
813d5f01dd Increase salt length to 12, handle line breaks
Increase salt from 9 to 12 chars to move along with technology
Replace all backslashes with 2. This means we escape PHP and then JS to
ensure we will maintain \n instead of ending up with a line break
2013-07-07 15:29:37 +01:00
Matt Pass
040a19a400 Remove o prefix and add ms
Looking towards supporting IE10 and IE11 as a browser
2013-07-07 15:27:46 +01:00
Matt Pass
13a5298be7 Remove o prefix add ms
Opera now uses webkit and as IE10 is becoming a better browser, I'm
taking steps towards supporting it by adding a prefix for no user
selects
2013-07-07 15:27:09 +01:00
Matt Pass
b366e47197 Condensing code, only need $renamed once 2013-07-07 15:25:32 +01:00
Matt Pass
9bbc41d7b7 Remove all the script tags
This not only saves bytes but I suspect opening & closing so many in
succession is causing a problem.
About 1 in 50 times it wouldn't get all the way through the file, it
would stop somewhere near the end
2013-07-06 19:45:27 +01:00
Matt Pass
4a8703d5f0 duplicate Lines and removeLines enhancements
Both functions can now duplicate and remove multiple lines as well as
specified line or current line
Tries to handle duplicating intelligently with line breaks if selection
ends at a line end getting a line break
2013-07-06 18:09:10 +01:00
Matt Pass
dcb5c886fa Function is now plural as it handles multi lines 2013-07-06 18:05:40 +01:00
Matt Pass
fbc6425a13 Ignore test-file1.txt
Altered by mistake
2013-07-06 18:05:10 +01:00
Matt Pass
332f2a492d Wrap & unwrap with same shortcut
Will now unwrap selection with same shortcut
Works for all tag wrapper shortcuts except for div and span where you
may want to nest
2013-07-06 17:14:14 +01:00
Matt Pass
86cab45ce2 Ignore test-file1.txt 2013-07-06 17:11:25 +01:00
Matt Pass
0759aad72f Adminer updated to v3.7.1 2013-07-06 17:11:08 +01:00
Matt Pass
9781a05d78 Compressed file now contains 3 libs
trailingspace, javascript-lint and lint now contained in compressed file
Made note of this and also sorted list into alphabetical order
2013-07-06 17:10:35 +01:00
Matt Pass
8c61b0ebc0 Ignore test file 2013-07-06 15:04:08 +01:00
Matt Pass
1d8f8dcdf9 Remove extra condition, left over 2013-07-03 14:47:10 +01:00
Matt Pass
8716026ae8 Only check on fileName if it's there 2013-07-03 14:46:58 +01:00
Matt Pass
6dbef7c929 Darker help icon
To match the others better
2013-06-30 13:03:58 +01:00
Matt Pass
47775ac085 New icons for error, warning and multple
3 icons added as PNGs for visibility and editability, adjusted CSS file
to suit
New icons are improved and refined from those originally set up
2013-06-30 12:50:52 +01:00
Matt Pass
51aa38764a Apply the linting to all JS files
Cycle thru all open files, and if it's a JS file, apply or remove the
linting option
2013-06-30 11:54:31 +01:00
Matt Pass
2b8010c24a tabsBar now at 53px, move 2 icons along 3px 2013-06-30 11:47:04 +01:00
Matt Pass
8a24eeff24 Remove old lint system, layout adjust for gutter
Remove updateHints function, upgraded to new gutter based JS Hint system
On toggle of codeAssist, clear the gutter and set lintWith to false if
we're turning off
1st tab position is now an extra 12px, so 53px not 41px
2013-06-30 11:45:39 +01:00
Matt Pass
863ece66fa JS Hinting and extra gutter added
Include linting files (1 x CSS and 2 x JS)
Include JSHint as part of the system now, instead of as a plugin
Remove old lint-error classes and waiting/widgets arrays
Added extra gutter for the lint markers
Lint with JS validator for JS files, false otherwise
No need to set or clear timeouts for updateHints
2013-06-30 11:42:03 +01:00
Matt Pass
b8f696ad69 Lint & JS Lint addons included
Also change the CodeMirror-lint-markers class to be width: 12px;
margin-left: 2px; instead of 16px
2013-06-30 11:37:42 +01:00
Matt Pass
40b31c7d00 No longer check if this exists, used elsewhere 2013-06-30 11:35:51 +01:00
Matt Pass
d85983bbe9 Update to JS Hint v2.1.4 & part of system now
JS Hint removed as a plugin from the plugins folder, now in it's own
folder like Farbtastic or Terminal
Upgraded to v2.1.4 and uglified it. Now it's up to date and 40k smaller
than the previous (unminified) version used
2013-06-30 11:35:19 +01:00
Matt Pass
143e006e55 Update min JS file to match main JS file 2013-06-29 23:33:40 +01:00
Matt Pass
68a8d6e052 Close folder contents before hiding
This will openClose a folder without requesting a reload. This means if
it's a closed folder it will stay closed and if it's an open folders it
will get closed. This is done before hiding the folder, without this the
child contents will still be seen even though the parent folder display
itself is hidden.
Function is now named deleteFiles
2013-06-29 23:32:50 +01:00
Matt Pass
ca22316ae4 Set root to blank to avoid double slash in path 2013-06-29 23:29:21 +01:00
Matt Pass
46c0ec9c63 No need to unset selectedFiles on new paste 2013-06-29 22:26:38 +01:00
Matt Pass
c9d4be3d1c Open and Duplicate options plus hr breaks
HR added to file menu to break it up into logical sections
openFilesFromList is more accurate function name now
copyFiles and deleteFiles now has selectedFiles array passed as param
duplicateFiles is a new option added between these
2013-06-29 22:25:54 +01:00
Matt Pass
f9b008f7d2 Natural comparisons and duplicate file function
Comparisons on files such as xyz9.txt and xyz10.txt would come out as
xyz9.txt being higher and cause issues as startFile and endFile would be
the wrong way round. I'm therefore now comparing on regex replaced
values, where numbers may be prefixed by up to 20 zeros (note
substr(-20) to right align our value.
delete, copy and paste file functions now plural as they handle multiple
files.
copyFiles works with a given fileList and not just the selectedFiles
array. Also passing params to control if we hide or show paste option
and file menu
pasteFiles will refuse to paste the root, that would cause bad looping &
compound pasting issues
duplicateFiles function added which takes a snapshot of the copiedFiles
array, copies the files while not showing paste menu or hiding menu. It
then sets the paste location to be the parent of the duplicate target
and pastes into that location. Once done copiedFiles is returned to the
snapshot image.
2013-06-29 22:20:18 +01:00
Matt Pass
f2474ba8da Open option added & pass thru selected files list 2013-06-29 17:47:07 +01:00
Matt Pass
52fc11eb57 Open files from list function added
Will open files from array of paths
2013-06-29 17:46:25 +01:00
Matt Pass
72ab42e7bf Determin fold type by { char existence
If we have a brace char on the line in question, we want to fold on
braces not tags
On change, if we have typed or just removed a } char, scan upwards to
find the previous { char
Then perform a refresh on all the lines in that range and redo the fold
type
2013-06-29 17:29:32 +01:00
Matt Pass
5b32c96f1d Determin fold type by { char existence
Don't assume if it's a certain file type it will be folding on braces,
instead fold on braces if there's a brace char on that line
2013-06-29 17:25:50 +01:00
Matt Pass
846204c244 More specific condition here
Would fail thru bad falsey checking
2013-06-29 15:45:45 +01:00
Matt Pass
c0e62ad8e8 Remove line class based on CM not tab no 2013-06-29 15:45:13 +01:00
Matt Pass
31bbbe098a Remove line class on CM instance not selected tab
We were trying to remove a line class based on tab number and not CM
instance, this ended up causing an error after 2nd open. Because of the
error, CM instance numbers were not being set correctly, so we ended up
with the same number and so when switching tabs it would show the same
editor instance.
2013-06-29 15:00:37 +01:00
Matt Pass
0fb89ceb06 Trailing space adding added
Load extra JS file, setup class and turn option on
2013-06-29 13:14:46 +01:00
Matt Pass
0f904e66d4 Upgrade to CodeMirror 3.14 & trailingspace.js
Extra lib added to display trailing spaces
2013-06-29 13:14:06 +01:00
Matt Pass
74739343d4 Cap fix only 2013-06-29 13:10:53 +01:00
Matt Pass
d4f1b9988b Descriptions added to all plugins & picker 2013-06-28 23:14:01 +01:00
Matt Pass
cd38113da2 Fix to save path containing filenames
Detect a . in the filePath and if we find one, save at root instead
(Stops us saving at a path that's actually a file, eg |TEST|file.txt)
2013-06-28 22:56:13 +01:00
mattpass
c95772122f Set token to session var 2013-06-23 14:19:56 +02:00
Matt Pass
3196275bb1 Don't allow new file or folder if greyed out
It's greyed out for a reason
2013-06-21 22:23:48 +01:00
Matt Pass
483ee12ccd Show message when we can't save in demo mode
Alert user that we can't commit setting changes in demo mode
2013-06-21 22:00:27 +01:00
Matt Pass
ba14dfdc46 Taller help screen to accomodate new shortcuts 2013-06-21 21:49:50 +01:00
Matt Pass
b7a2e7d097 Scroll mousewheel to cycle thru next/prev tabs 2013-06-21 21:49:30 +01:00
Matt Pass
6ff8dcffc1 Clicking middle mouse on tab closes it
Show shortcut on help screen too
2013-06-21 21:31:55 +01:00
Matt Pass
bc8903d3c8 If we haven't specified, close the current tab 2013-06-21 21:27:11 +01:00
Matt Pass
6e43e7a336 H1-H6 now
H7 removed as a shortcut
2013-06-21 20:58:08 +01:00
Matt Pass
df81050c2a H7 removed, H1-H6 now only
H7 removed as not officially part of the W3C spec
2013-06-21 20:57:17 +01:00
Matt Pass
ebfafc66cb Show light or dark text on picker previews
Declare all vars at the top of function
If the R, G or B values have less than 50% saturation or we have a high
yellow like color, use a white text color, otherwise black
Set that on both the X&Y preview and the clicked color preview
2013-06-21 20:53:00 +01:00
Matt Pass
bccf5d0f48 Icon readded
Removed by mistake
2013-06-21 20:30:32 +01:00
Matt Pass
761a9f4505 ICErepo v0.8 2013-06-21 20:17:18 +01:00
Matt Pass
5f29c44a9e Removed license
The main JS file contains reference to a GNU license URL which
supercedes this one
I therefore feel I can remove this 17k file for bytesaving reasons and
it still contains a link to an updated license
2013-06-17 14:50:07 +01:00
Matt Pass
c5b22427f3 Error catching and minor tweaks
No need for error reporting here, set by settings.php
Set empty $passwd array and then set that array value if we have a login
attempt, to avoid error
Removing unneeded syntax and whitespace
Check isset on request command to avoid error
2013-06-15 14:25:41 +01:00
Matt Pass
d3737f5a62 User settings carry version no & clear on upgrade
versionNo also added to user settings array
Check this against system and on mismatch, rename .old and reload to
create new settings file
2013-06-15 13:40:56 +01:00
Matt Pass
7bef57ca76 Hide errors, @session_start and if wrap function
Don't display errors, just silently log them
Don't produce warnings if we can't session_start due to headers already
being sent
Test if the mb_detect_encoding function exists before using
2013-06-11 08:37:27 +01:00
Matt Pass
ebff4cd1c0 Complete rewrite and now covers 12 tests
I've decided not to cover every item in the API as this would be a bug
undertaking and it's not necessary to test every part.
So I have covered the main functions here and areas where items may go
wrong, such as opening, updating (testing CM), saving, manipulating
content, altering the structure, tab switching and getting remote
content
By having only the important items to test, we also keep the test speed
runtime as short as possible.
2013-06-10 09:55:46 +01:00
Matt Pass
b0dc96c888 Edge case changing on item existance
Only look to update hints if we have at least 1 open file
We can also only determine the type of fileName for code folding if we
have a filename
The same is true for the previewWindow, can only look to do this if we
have a file open
These are all edge cases highlighted through unit testing
2013-06-10 09:53:07 +01:00
Matt Pass
13e1b933e1 Only action on fileName and dontAsk param
We can only set the CaretLocType if we have a fileName to inspect, an
edge case brought up by unit testing
Extra param added to closeTab to allow us to not ask the user for close
permission on unsaved files
2013-06-10 09:49:54 +01:00
Matt Pass
b25cab1fe6 No provided test file, so no perms needed there 2013-06-10 09:45:48 +01:00
Matt Pass
01ebefcb74 Test file removed
Now created on the fly by ICEcoder
2013-06-10 09:44:42 +01:00
Matt Pass
e536b0d5e2 Help & Settings icons added, new tab star gone 2013-06-07 23:39:42 +01:00
Matt Pass
2147f1f129 Adjustments to work with new icons
Added helpIcon and settingsIcon classes
newTab has slightly different padding now we have a + symbol instead of
a star image
2013-06-07 23:38:51 +01:00
Matt Pass
e684a1e91b Extra icons, tooltips and new tab is now a +
Help and Settings icons added
ICE symbol now clickable to website
All these icons now have alt and title tags
New tab symbol is now a + instead of a star
The form containing codeAssist and goLine now has an action of # to stop
submitting to self on some browsers
2013-06-07 23:37:58 +01:00
Matt Pass
6f95aeac8f Condensing and tweaking code
0px becomes 0
Classes added for demoArrow, h2 and heading to save repeating styles
No need to set $class for 1 use, define inline and also shift left more
to line up better
Condense closing and opening PHP tags by not doing this
Add ternary condition instead of if else
Only trigger cssColorPreview if CSS is our caretLocType
Condense working out fileExt down to 1 line
2013-06-07 23:33:48 +01:00
Matt Pass
f071f84eb4 Version 3.0 beta 2013-06-07 12:46:37 +01:00
Matt Pass
8db478d8f0 New color settings added, BG image removed
tabBGopen now a lighter color, plus tabFGcurrent and tabFGopenFile
colors added
Removed bgVPos and no longer setting BG position as we're not using an
image anymore
(Instead we set either the current or open tabBG color
We also set the FG color of the filename to current or openFile
2013-06-05 18:11:54 +01:00
Matt Pass
ce481b0f25 3px radius on filenames, slight adjusts to margin
Plus padding added to filenames
2013-06-05 18:07:21 +01:00
Matt Pass
6af16d7fca No longer using tab BG image, add background #aaa 2013-06-05 17:59:13 +01:00
Matt Pass
850cc3b2bd Remove tab BG image
We are now setting with CSS background
2013-06-05 17:57:02 +01:00
Matt Pass
a1363ef41b Remove old template file
Is now config___users-template.php and this is no longer used
(duplicate)
2013-06-05 17:56:29 +01:00
Matt Pass
71f82251f6 Remove progress bar and fade on hiding file menu
Progress bar removed as it's not accurate or indicative of amount
loaded/progress
Call hideFileMenu instead of manually setting display, so now we have
fade effect
Add opacity transition of 0.15s
2013-06-05 17:11:03 +01:00
Matt Pass
eaf39661ba Fade menu in/out plus get rid of progress bar
No longer manually set display to none on fileMenu on actions, should be
calling hideFileMenu
On showing the menu, set the opacity to 1 4ms after setting the display
to inline-block
Simply set opacity to 0 on hiding so it's more an instant hide
Get rid of progress bar reset
2013-06-05 17:08:21 +01:00
Matt Pass
2b991d9958 Features moved to website
No need to be part of the ICEcoder repo, plus saves 2k
2013-06-05 17:04:07 +01:00
Matt Pass
eed8b29753 ICEcoder logo update and docRoot setting added
New ICEcoder logo added plus docRoot available as a setting in
config___settings.php
2013-06-05 16:14:36 +01:00
Matt Pass
ebc8e3a27b Error catching on range select
Will only now begin to select a range of files if we have selected files
already.
If not, it will add this first file as a start point.
Will also only range select if we are range selecting in the same
folder, otherwise will add this file. This enables you to select ranges
of files in different folders.
Lastly, the root has a very slightly different node structure, as we
can't start at 0 and step in increments of 2, it needs to be 1, 3, 5
etc. So as a failsafe, if the node we're looking at is not a LI,
increase the i counter by 1.
2013-06-04 18:47:06 +01:00
Matt Pass
aa2ed93d74 Load system and user settings files
$configSettings is a seperate file now, containing the array of settings
we have buried in this file
Renamed user template, so change of filename here
Also using $configUsersTemplate to be clearer about things
2013-06-04 18:03:32 +01:00
Matt Pass
ba520e6aa1 Added config settings file
These were buried in the settings.php file, now pulled out of the file
and put into their own array
This is so they can be found easier
2013-06-04 18:01:44 +01:00
Matt Pass
61373e87ea Rename, was config___template.php & array rename
As we now have 2 files beginning config___, be more specific about what
this relates to
Also renamed the array to $ICEcoderUserSettings
2013-06-04 18:00:49 +01:00
Matt Pass
4dd95b1b0f Ignore config-*
Be less specific about the files we do want to include
config-*.php for files to ignore and those we want to keep will begin
config___
2013-06-04 17:59:00 +01:00
Matt Pass
f160b4fa80 Range select added, shuffle of layout and Ctrl
Range select (Shift + click) added as a shortcut
File manager shortcuts moved under document shortcuts
All instances of CTRL now Ctrl
2013-06-04 17:39:03 +01:00
Matt Pass
de637f1048 Ctrl + s and +o noted on Save and Open icons 2013-06-04 17:37:57 +01:00
Matt Pass
f628868a8e Logo updated to show a capital ICE
The letters stand for Inspire, Create, Evolve. Should capitalise the I.
2013-06-04 17:31:40 +01:00
Matt Pass
9dd2221841 All variations of password now just password
To make things simpler, everything is now just called password rather
than accountPassword etc
settings.php also now gone back to checking for the existance of the
$_POST password rather than looking for a submit button named 'set
password'. This obviously wouldn't work as that's not the name of the
button on the settings screen, it's 'update'
2013-06-04 17:25:46 +01:00
Matt Pass
24d68efd4b Get 1st array value seperately
Some older versions of PHP don't seem to like calling [0] on the same
line as explode
Now getting value on seperate line of code
2013-06-04 14:14:49 +01:00
Matt Pass
ad8c3da48b Shift click now available to select file ranges
New vars added for the new event of shift-clicking to select ranges of
files in the file manager
Get the last file clicked and work out if the file we've just clicked is
alphabetically greater than it or not, so we end up with a startFile <
endFile and are therefore selecting from startFile downwards
In a for loop, run until we find our startFile and begin selecting.
If we're selecting and the file we're looking at isn't in our
selectedFiles array, select that file and add it to the array
Finally, when we reach our endFile, break out of the loop
2013-05-31 23:37:35 +01:00
Matt Pass
7255ea4805 Consider extensions up to a space char
This enables ICEcoder to understand that image.jpg (2) is a jpeg and can
be opened as an image
2013-05-31 21:16:18 +01:00
Matt Pass
47cf80102c Run processes on events
On logout event, include that process
Settings template file is now config___template.php
Create new if statement for login success and fail, plus run processes
for each event
On new user setup, run that process
If multiUser, always show the checkUpdates box as we don't know if we're
setting up a new user or logging in, so have to assume it's a new user
and allow this setting to show
2013-05-31 20:25:44 +01:00
Matt Pass
2cebe069f2 onLoad, run processes/on-load.php
open this in the new iFrame, processControl
2013-05-31 20:19:11 +01:00
Matt Pass
3326ba5784 New iframe added for processControl
Processes will be loaded into this. For now it's only used by
processes/on-load.php.
As more processes are added this will be used by them.
2013-05-31 20:18:22 +01:00
Matt Pass
5e5fa22566 Renamed template to config___template.php 2013-05-31 20:17:10 +01:00
Matt Pass
95dbad842d Processes added
Files added to put custom processes into, including events for:
load, login fail, login, logout and new user
2013-05-31 20:14:54 +01:00
Matt Pass
5576c9e2e9 If we have no fileLoc, show /
This covers saving new files/save as in the root
2013-05-31 14:35:08 +01:00
Matt Pass
3577fc613e Update file to match main JS 2013-05-31 14:34:26 +01:00
Matt Pass
7bdeefd7e1 Only do layout things if ready, fix to path
Can only resize the file manager if ICEcoder is ready
Need a selectedFiles[0] in order to prefix to filePath
If we add a new file to the root, we end up with a ||[NEW], so replace
|| with | to fix this
Can only set tab widths if ICEcoder is ready
2013-05-31 14:32:02 +01:00
Matt Pass
df2697c68b [none] moved left & up
To match style of other data items on display
2013-05-31 12:36:51 +01:00
Matt Pass
d859075e97 multiUser is false by default 2013-05-31 10:39:08 +01:00
Matt Pass
d6c282a70a Multi user setup & login added
Session accountUsername is now just username
Settings filename now may contain the username if available from a post
or session var
setPWorLogin is now login by default, set password if we create a new
config file
Instead of the posted accountPassword value, we now look to the value of
the submit button and if it contains 'set password' or not
Set session username to the posted value on login or set password and
set to itself on every load
accountPassword form field now just password
Focus on the username or password field, depending on the 1st one shown
on page
Set the value of the submit button to 'set password / login' if
multiUser
2013-05-31 10:36:39 +01:00
Matt Pass
f541fae982 Get function added for byte saving and clarity
New global function added called 'get'
This is because top.document.getElementById is used so often, we
actually save 2kb by having a function to return the object, plus it's
much more readable to have:
get('serverMessage').style.opacity = '1';
rather than
document.getElementById('#serverMessage').style.opacity = '1';
2013-05-30 18:11:04 +01:00
Matt Pass
054cc5cad9 newTab behind others and fix move glitch
newTab now has a z-index of 0 so that it slides behind other tabs when
new tabs are opened
serverMessage is now display: inline-block and hiding and showing is
done on moving the left position to 0 or 2000px to show or hide (doing
the show/hide on changing the display type was causing reflow issues
which seemed to mean occassionally the newTab wasn't moving to the
correct position)
2013-05-30 08:41:39 +01:00
Matt Pass
b52f0cd112 Version 2.5 screenshot 2013-05-29 15:08:51 +01:00
Matt Pass
4865f6c87b Version 2.5 2013-05-29 14:49:47 +01:00
Matt Pass
b2ceca3a8f Range fix & check fold type by file extension
Revert back to the 'from' > 'from' range as we may not always have a
'from' > 'to' object here
Determine fold type by filename extension, also includes CSS and LESS
2013-05-29 14:49:39 +01:00
Matt Pass
2c4ee9370c Escape quotes and full release > beta
Escape quotes in message so we can have quoted URLs in links etc
If our version is beta, the current not and we have matching numbers,
take 0.1 off our version number so it's seen as a lesser version
2013-05-29 13:57:43 +01:00
Matt Pass
1f10cad45b Clearer to use from - to
Was actually OK going from -> from line, but makes more sense to go from
-> to.
2013-05-29 12:42:32 +01:00
Matt Pass
c2e92fa355 Brace folding on applicable filetypes
On both load and change we need to use braceRangeFinder or
tagRangeFinder depending on filetype
Also get rid of old, commented foldStyle marker CSS historical reference
as we're now using that
2013-05-29 08:57:37 +01:00
Matt Pass
2f85371738 Need to global context to be usable 2013-05-29 08:54:45 +01:00
Matt Pass
a48c9f5a77 Set gutter to be min-width not width
This is so the gutter width expands for bigger line numbers, was
overlapping due to fixed width
2013-05-29 08:25:39 +01:00
Matt Pass
61728cfa07 Seperate fold gutter, CSS tweaks & for count fix
Seperate gutter & class added for folds
Change to class names - now fold, foldOn and foldOff
Tweaks to coloring on fold markers
For loop needs to redo fold markers for both the start line and for the
length of the text. This means we now get fold markers when pasting
lines of text
2013-05-29 08:24:46 +01:00
Matt Pass
1643e74758 CSS class name changes
fold is now the classname for the guttermarkers, foldOn for the on
variant, foldOff for off
We have a seperate gutter now for folds, called folds and no longer
dropping markers into the linenumbers gutter
2013-05-29 08:16:33 +01:00
Matt Pass
33a354688a Begin setting up multiUser
For now tho this is hidden from view until the rest is set up
2013-05-28 19:07:51 +01:00
Matt Pass
7c2d6f6fb5 Organise alpha tabs on openFiles.length
Don't run this process based on cMInstances.length but openFiles.length
which represents the tabs open
2013-05-28 18:41:16 +01:00
Matt Pass
ea959248ca onChange redo markers
Redo the markers for the changed range
2013-05-28 08:39:08 +01:00
Matt Pass
2665a3be40 initMarks is now dontCollapse, clear non folds
initMarks was used for the intial setup of a doc with (-) marks but this
idea can be extended to cover not wanting to collapse and only mark
lines
If a line isn't collapsable now it clears the markers for it (used when
we delete text, replace with something else etc)
2013-05-28 08:38:33 +01:00
Matt Pass
d240cf0a53 Compressed file no longer contains foldcode.js
This is because we have a modified foldcode.js file now in ICEcoders own
lib folder
2013-05-25 18:36:30 +01:00
Matt Pass
c02e7cd0b5 foldcode.js loaded and guttermarks set
A modified version of foldcode.js is now loaded to show guttermarks
New classes added for foldmarker, guttermarker plus the on and off BG
colors
Remove temp measure of showing a guttermarker then 1 second later
removing
Instead now pass new params to the new codefold system to show
guttermarks
2013-05-25 18:30:54 +01:00
Matt Pass
6a3e15aabf On load also set the gutter marks
Using tagRangeFinder for now, need to also handle braceRangeFinder and
put into a function within ICEcoder
2013-05-25 18:26:24 +01:00
Matt Pass
e4bae8cdc5 Now shows guttermarks
Takes new params for markOn, markOff and initMarks
Creates new span DOM elems for markOn and markOff
Determin if a line is foldable by there being a range with chars in
between (ie, start & end line's & ch's not the same)
If it's foldable and we're clearing or setting up the initMarks, show
markOff marker, otherwise markOn marker (as cloned nodes)
Also set to the markOff marker when clicking the inline widget
2013-05-25 18:24:47 +01:00
Matt Pass
e0e679d436 foldcode.js added
Original foldcode.js from CodeMirror addon lib added
This is because I want to make changes to this to show guttermarks too
Added as a start point, so we can see changes in a diff view
2013-05-25 18:18:55 +01:00
Matt Pass
0f3050521d Titles added to Preview Window and Terminal 2013-05-24 09:18:38 +01:00
Matt Pass
db5a10bb96 Update file to match main JS 2013-05-24 09:12:50 +01:00
Matt Pass
b05954eccd Error catching when no tabs are open
Look to openFiles.length on if statements within openPreviewWindow,
closeAllTabs and alphaTabs functions so we only do these processes if we
have 1 or more tabs open
2013-05-24 09:10:37 +01:00
Matt Pass
d2504dac64 New classes for colorValue and insertColorValue
To stop using inline styles on the preview/value boxes and insert
buttons
2013-05-23 17:50:15 +01:00
Matt Pass
a95e4124a8 RGB background, color and value set
Same BG and color as hex elem, but value is set the hex BG value with
whitespace removed
2013-05-23 17:49:31 +01:00
Matt Pass
c18630b0a5 RGB color value added to picker
Farbtastic color picker now setting RGB value and BG color in colorRGB
elem
insertColorValue function adjusted to receive any value and replace
2013-05-23 17:46:44 +01:00
Matt Pass
f436aa835d Set a stream context timeout for file reading
Add a context array to all instances of file_get_contents(). This is so
we don't end up with a timeout too early if the system is set to
something short (ie, 15 secs) and we try to open a large file that takes
longer than this short limit.
2013-05-23 17:45:00 +01:00
Matt Pass
7409c89a87 Updated file to reflect main JS file 2013-05-23 10:08:45 +01:00
Matt Pass
0de8405906 Remove old highlight & save dialog now filename
If we have a new filename and our file is not [NEW], we must be
peforming a Save As.
In this case, establish the old filename and if it's visible, change its
BG & FG colors to the default
Also now set previousFiles when any save happens to avoid previousFiles
still having old filenames
The dialog now wants only a filename in both Save As and New File cases
Condensed code a little here
2013-05-23 10:08:11 +01:00
Matt Pass
39d4bfe858 If our file is |[NEW], prefix selectedFiles[0]
This is so we can pick up where we are saving the new file.
2013-05-23 09:56:56 +01:00
Matt Pass
0677cb2a90 Line height added to previously opened files list
Icons and text previously looked out of line
2013-05-23 09:55:09 +01:00
Matt Pass
2dd2e64f43 Ignoring config*.php except config-template.php
To avoid any of the config files ending up in your Git repo
2013-05-23 09:54:30 +01:00
Matt Pass
3d45172991 Config now includes server name
Config filename now also includes server name (domain and subdomains).
This means you can end up with different config files depending on where
ICEcoder is being used, such as config-localhost.php,
config-mydomain_com.php, config-dev_mydomain_com.php etc.
Also now using CodeMirror 3.13
2013-05-23 09:53:24 +01:00
Matt Pass
979fb791ac Upgrade to CodeMirror v3.13
From v3.12
2013-05-23 09:43:17 +01:00
Matt Pass
1fcc2d996c Detect encoding and use that in if statement
Try to detect encoding type and check on it not being ASCII in if
statement too
2013-05-22 17:21:17 +01:00
Matt Pass
e1d1891de8 Don't set innerHTML to false
Mistakenly setting the innerHTML to false, so went back to classic
if/else if statements to only set on these 2 cases
2013-05-22 17:19:20 +01:00
Matt Pass
fabfcbd742 Test against converted UTF8 no BOM content
Convert content to UTF8 with no BOM before testing matches against it
2013-05-22 13:00:19 +01:00
Matt Pass
3710fa9e79 Convert content to UTF8 no BOM
Detect bad chars and BOMs in loaded content and convert plus show
message to inform user
Affects: Loaded files, remote loaded files, replacing text in files,
saving files
2013-05-22 12:58:33 +01:00
Matt Pass
b059261065 Function to convert strings to UTF with no BOM
Remove BOM, test broken and converted string lengths, encode if needed
and also show a message if required.
2013-05-22 12:55:27 +01:00
Matt Pass
7b1b91ca14 lineEnding setting added
Now replacing \r\n, \r and \n with whatever we chose to be the
lineEnding setting
lineEnding is \n by default
2013-05-22 08:40:38 +01:00
Matt Pass
098127c287 New min file to reflect changes 2013-05-21 17:05:21 +01:00
Matt Pass
83c99f34a3 Lowercase hex used
Use lowercase hex values to be consistent with rest of ICEcoder
2013-05-21 17:05:04 +01:00
Matt Pass
a9ae141838 Selected tab color is now very dark grey
This is to go with new color scheme, where black is current and is same
color as findBar to better indicate which tab you're on. Looks more
refined too!
2013-05-21 16:57:08 +01:00
Matt Pass
c783416054 Use tabFGselected instead of hardcoded value 2013-05-21 16:55:51 +01:00
Matt Pass
59e1bc3c56 New settings to style highlights
Formatted settings to make them easier to read
Added new settings tabBGselected to tabFGnormalTab. This is so you can
change styling of ICEcoder itself a bit easier, as these colors are used
in a few places
Extra ternary conditions added to handle things better.
Black is now current, selected is blue, open is grey and normal is
transparent. Also set the FG text colour on these things too, to go with
new color scheme.
2013-05-21 16:55:09 +01:00
Matt Pass
f4cdff0c2c Show icons for last 10 files
Load in seperate CSS file file-types.css
Show the last 10 files in a UL, with icons next to LI's as per file
manager tree
2013-05-21 16:46:23 +01:00
Matt Pass
5bd99480f1 Redo highlights on opening branch
When we open a new branch, redo the tab highlights which also redoes the
file manager highlights
2013-05-21 16:44:21 +01:00
Matt Pass
a86e7e4182 Using file-types.css too 2013-05-21 16:42:33 +01:00
Matt Pass
c3477264b3 file-types.css added
Everything related to the file tree display, icons etc moved to it's own
file
This is so we can use this CSS file too, without having an additional
CSS reset and body applied
Main reason for doing this is so we can show icons from editor.php
2013-05-21 16:42:16 +01:00
Matt Pass
9c4c33aa76 Increase the variations on definition matching
Covers a few more variations here, will one day integrate Tern to better
handle this.
2013-05-16 16:57:05 +01:00
Matt Pass
9b5aea5aec Shortcut for mobile open file added 2013-05-16 08:43:37 +01:00
Matt Pass
614ee50262 Open file on clicking on a mobile 2013-05-16 08:31:18 +01:00
Matt Pass
f1b7c973d3 Update min file to match main JS 2013-05-14 18:41:06 +01:00
Matt Pass
0c7fad798c updateByte Display and showDisplay functions
byteDisplay added as DOM elem ref
updateByteDisplay added which sets the inner HTML to be the length of
the content spilt by commas on thousands
showDisplay function added to toggle between the 2 displays
Call updateByteDisplay on switching tabs
2013-05-14 18:40:41 +01:00
Matt Pass
e4ed3cf978 Call updateByteDisplay on events
To match updates on updateCharDisplay
2013-05-14 18:38:45 +01:00
Matt Pass
63687b7f48 Byte Display container added
Get rid of span inside of charDisplay, not used at all
Add byteDisplay much like charDisplay, both have a display set and
onClick call the new showDisplay toggle function passing the others name
as a param
CSS made simpler by aligning right with a margin plus cursor now pointer
2013-05-14 18:38:08 +01:00
Matt Pass
20454a21ed devMode setting displayed
Test suite now floated left with 50px right margin
If devMode is true, float another DIV to the left of this stating that
demo mode is on and we are using ice-coder.js
Maybe don't need the DIV to clear the float, but worthwhile having
incase of browser layout issues
2013-05-14 08:56:51 +01:00
Matt Pass
eb30cb0cb6 Version 2.4 screenshot 2013-05-13 09:12:51 +01:00
Matt Pass
b211fae85c Version 2.4 2013-05-13 08:58:21 +01:00
Matt Pass
93b4774903 Take ICEcoder back out of devMode 2013-05-13 08:57:57 +01:00
Matt Pass
236b55fce6 Updated min file to match dev JS file 2013-05-13 08:57:44 +01:00
Matt Pass
c34bf50c39 Info & version in msg, form near upload option
Show update version info after version no in message
Move form next to upload option it relates to for clarity
2013-05-13 08:55:31 +01:00
Matt Pass
b8f921dab2 CTRL+o can now get remote URL
You can enter an absolute URL path (ie, anything that has :// in it) and
it will trigger a different function to get the remote URL by sending
that action to the server queue
2013-05-12 17:13:44 +01:00
Matt Pass
fc79be3010 getRemote file function added
Firstly, avoid establishing a full path if we have a getRemoteFile
action as it will be a URL
If we want to get a remote URL, attempt to get remote contents,
standardise all line endings to be Linux based, create a new tab, new
textarea and finally set the value of the new tab. If we don't manage to
get the file, show an error message
2013-05-12 17:12:14 +01:00
Matt Pass
63d08eeed2 Clarify write perms to be either 757 or 775
Depends on system
2013-05-12 17:09:22 +01:00
Matt Pass
7fa39f645d Space shortcut to refocus on document
Hit space when outside of document to refocus on it
2013-05-12 16:06:55 +01:00
Matt Pass
535677fc8e onclick needs if check and simpler title updating
onclick function needed is statement plus passing of event on anon
function to solve repeated CTRL+click issue
Update title not by adjusting hardcoded values but by looking to ID of
targetElem
We're able to get rid of a lot of code here as the onmouseover function
is now looking to a child node item in get-branch.php, so no need to
mess with updating hardcoded string values.
2013-05-12 13:56:30 +01:00
Matt Pass
2dfff50031 Set 2nd param to this.childNodes[1].id
Rather than a hardcoded string which we need to update later, make it
relate to the inner node items ID
2013-05-12 13:53:28 +01:00
Matt Pass
c335b6b7fb Check htmlState also plus put into dev mode
Extra CodeMirror object child level needs to be checked too plus put
into dev mode until I resolve 2nd eval issue on renaming file (occurs in
.min.js file)
2013-05-10 18:50:14 +01:00
Matt Pass
a81c4c7a75 Also need write perms on test-file1.txt
A temp measure till I do something better here
2013-05-10 17:50:48 +01:00
Matt Pass
e2ada5e6b2 Setup point changed to include perms on test dir 2013-05-10 17:46:27 +01:00
Matt Pass
43ae4ac317 Dropping eval for function closure and slashes
Stop using eval here in favor of a function that returns the value, also
replacing pipes with slashes to display correctly on mouse hover
2013-05-10 17:45:11 +01:00
Matt Pass
5f0ee6d95e Trim + and space from end of file
Not something that should/could be used consistently across enviro's so
am trimming these chars off
2013-05-10 17:41:37 +01:00
Matt Pass
0947172391 Copying of multiple items
Celecting copy will now store an array of the selected items and when
pasting, add each to the server queue for pasting.
2013-05-09 09:10:16 +01:00
Matt Pass
0fb9680f72 devMode setting added, swapped menu item order
New setting for devMode. If true it will use the unminified ice-coder.js
file, otherwise the min.js version
Copy option now available for multple file copying, outside of single
menu items. Paste option moved next to it.
2013-05-09 09:06:23 +01:00
Matt Pass
ba94a3bba0 Add system as a DOM elem
Not used as yet but available as a hook
2013-05-08 08:59:13 +01:00
Matt Pass
11963e263d No need to have font weight, size or color
No text inside this anymore
2013-05-08 08:58:47 +01:00
Matt Pass
3f15cb8fff Python now supported as a language
Also minor fixes to Ruby's usage
2013-05-08 08:51:50 +01:00
Matt Pass
eca4f8e06d Version 2.3 2013-05-06 17:59:51 +01:00
Matt Pass
358be2ee92 Updated to v2.3 & changed text to Linux Terminal 2013-05-06 17:59:44 +01:00
Matt Pass
acd8f949e7 Updated file 2013-05-06 17:42:58 +01:00
Matt Pass
a1574af5e0 Working with previewWindow, plus new sys tools
stickyTab now previewWindow in all places
nestDisplay text now gone, was just clutter
nestValid and nestDisplay now move to be under editor when resizing file
manager
Now setting nesting OK/broken on title on new look nesting indicator
new functions for openPreviewWindow and openTerminal, tidied up code a
little
stickyTabMaybe now removed as a flag
2013-05-06 17:40:02 +01:00
Matt Pass
525e73e179 stickyTab now previewWindow 2013-05-06 17:33:42 +01:00
Matt Pass
abe1745642 Terminal plugin removed
Now part of the ICEcoder system
2013-05-06 17:33:21 +01:00
Matt Pass
eda925e617 Icons for preview window and terminal added 2013-05-06 17:33:04 +01:00
Matt Pass
5ab3f7ba16 All stickyTab refs now previewWindow 2013-05-06 17:32:45 +01:00
Matt Pass
cb12bdad2d Removed sticky tab shortcut, added live edits 2013-05-06 17:32:11 +01:00
Matt Pass
2a6c2fc273 Jump to definition shortcut added
Shortcut re stickyTab now gone as we click icon to open preview window
now
2013-05-06 17:31:48 +01:00
Matt Pass
216c04b3f1 Terminal moved to system & icon gone
Terminal is now no longer a plugin but part of the ICEcoder system. In
doing this, the icon was removed, plus the path to the settings.php file
altered
2013-05-06 17:29:12 +01:00
Matt Pass
0ecb6ea1aa system, preview, terminal & nest display changes
New class added for new system tools area below file manager, contains 2
child divs to display preview window and terminal icons
nesting class is now a small circle, placed near nestDisplay which
contains the breadcrumbs
nestDisplay class is moved along by 12px to accomodate the new smaller
nesting OK/broken indicator
2013-05-06 17:25:59 +01:00
Matt Pass
f3fff8543d Icons for preview and terminal, add demoMode var
demoMode var now available to make use of in JS
New system DIV in footer along with 2 child divs which trigger new
functions to open the preview window or terminal
Get rid of nest display text, it's just clutter
2013-05-06 17:22:36 +01:00
Matt Pass
2d75b57195 Using minified JS file
40% byte saving so loads that bit faster.
2013-05-06 16:00:01 +01:00
Matt Pass
7ebd73916e Added a minified version of ice-coder.js
This saves about 40% of the load time on this file now.
2013-05-06 16:00:00 +01:00
Matt Pass
cafa9d521a Making JS Google Compiler compatible
Needed to alter a few things to make it Compiler compatible. These
include stop using </textarea> even if it's in a comment, escape it when
using it as a string, comment tag openings need to be escaped too, plus
we cannot use char as a var, so renamed many references to ch instead.
Finally, needed to escape the &#39; apos ref to avoid issues there.
2013-05-06 15:59:59 +01:00
mattpass
a5b395d888 3rd param should be false
The 3rd param is to define buttonClick, which isn't true in this case.
2013-05-05 19:52:25 +02:00
Matt Pass
c214640bb1 Jump to Definition variations setup
If something is selected and we have an orig cursor pos, set it back to
that. If not, we set the orig cursor pos, define an array of possible
definition matches and attempt to find them one after another in a for
loop, escaping when we do. Altered findReplace function to provide a
return of true or false depending on if anything is found.
2013-05-05 13:35:38 +01:00
Matt Pass
d7a8b35ded Jump to Definition, opening up findReplace func
New function jumptToDefinition. This takes token at the current cursor
position and then looks for that function definition as a set piece of
text 'function '+tokenString. This is triggered from CTRL+J so you can
hit this whenever you're on a function call and it will jump to it's
declaration.
In doing this I have repurposed the 1st param in findReplace function to
now accept a string to find. Previously we had this set to action, but
this variable was never used, must have just been a placeholder. In the
couple of places we call this function now we are passing the find input
box value.
2013-05-04 15:19:31 +01:00
Matt Pass
bcc86e160f Pass find value to function as 1st param
Instead of passing thru a string that never gets used (the 1st param
here is put under the action variable, but then never used), now the 1st
param is the string to consider as the find. In these cases, it's
obviously whatever is in the find input box.
2013-05-04 15:14:38 +01:00
Matt Pass
5b14389c6e Only hide mask if not over popup elems
Determined by a overPopup flag
2013-05-04 13:52:28 +01:00
Matt Pass
0ba4803154 Canvas elem plus 4 x input boxes added
Canvas element added to drop a dup of our image into
4 input boxes also added to show current mouse XY hex & RGB values and
similar values when clicking the canvas image.
New flags added to stop closing the popup unless we click outside of
these elems
Finally, split everything onto multiple lines for readability
2013-05-04 13:51:51 +01:00
Matt Pass
e58f9cae28 overPopup flag, canvas display & hex/RGB convert
New flag to determin if we are over a popup or not, won't hide popup on
click if we are
drawCanvasImage function added, takes img node, creates a new canvas and
on load of a JS img object, puts the same image into the canvas, scaled
to same size. This then has 2 functions applied to update RGB and Hex
values and BG colors as the mouse moves and also on click sets another
set
rgbToHex and toHex functions added to help return hex values on demand
2013-05-04 13:48:33 +01:00
Matt Pass
1d5c049c01 Don't reload MD files
Stick with the Markdown parsed version shown via editing.
2013-05-02 17:19:04 +01:00
Matt Pass
0d01b4a2ea Only update current doc & CSS append once
Now only updates the innerHTML value of the stickyTab doc if the browser
location is the same as the doc we're editing (HTML & MD files). Also
now adding an ID to the style and if it exists, remove that child DOM
elem before adding another so we only ever have 1 child for this, ie, it
gets updated by removing & adding.
2013-05-02 17:18:15 +01:00
Matt Pass
d43a758a37 Markdown mode added, fix to tag display
Markdown added as a mode
CodeMirror changed their object structure to include another child -
htmlState
If it's a markdown file we're editing, after loading our file into the
stickyTab, onload of this parse our content through mmd to this window
2013-04-30 17:54:19 +01:00
Matt Pass
d886372f11 Load mmd.js lib for markdown parsing to stickyTab 2013-04-30 17:51:51 +01:00
Matt Pass
838d44bd5c Load and use Markdown parser
If the file we are editing is a markdown file and we have a stickyTab
open, send the parsed editor content to the document DOM for display
2013-04-30 17:51:26 +01:00
Matt Pass
8f997eb4f3 Markdown parser added 2013-04-30 17:48:54 +01:00
Matt Pass
65b3fc56ef Markdown icon added, others shift along 2013-04-30 17:48:16 +01:00
Matt Pass
6e061cbc30 Markdown (md) files can now be opened in editor 2013-04-30 17:47:58 +01:00
Matt Pass
9e44b76214 Markdown icon added 2013-04-30 17:47:28 +01:00
Matt Pass
d1e928e068 Note on Markdown mode being included 2013-04-30 17:47:19 +01:00
Matt Pass
2c2249d96b Markdown mode included 2013-04-30 17:46:55 +01:00
Matt Pass
d87e932030 Live editing of CSS files
Tries to find CSS files in the stickyTab shown window. If it does it
appends a new stylesheet to it as you type.
2013-04-30 08:07:03 +01:00
Matt Pass
44cac8a7e1 Live editing of HTML files
Now when you have a stickyTab open and edit HTML files, it shows the
live edits as you type
2013-04-29 08:32:49 +01:00
Matt Pass
736d3c8744 If ctrlKey, don't openCloseDir
We are selecting files/folders if the control key is down, so no need to
open or close dirs
2013-04-21 15:48:04 +01:00
Matt Pass
3104065437 Dimensions now shown under image
The natural image dimensions are now shown next to the image name (now
in bold) along with a note that it's displayed at a reduced size, if it
is.
2013-04-21 15:47:15 +01:00
Matt Pass
444695a908 CTRL, Alt & Shift keys now established natively
Instead of having toggle variables for CTRL, Alt and Shift we are now
establishing if these keys are up/down from the event object passed in.

This means we don't need these flags, it's less code, and more reliable
too as we query if these keys are down from the event hooks.

delKeyDown is also removed though was never really used.
2013-04-21 15:42:55 +01:00
Matt Pass
eba6f4eaf2 Pass event to showMenu on context menu
This is used as a hook to establish if CTRL, shift and Alt keys are down
2013-04-21 15:16:40 +01:00
Matt Pass
e3b4f0b159 v2.2 screenshot shown 2013-04-20 18:30:47 +01:00
Matt Pass
5c55939765 Farbtastic color picker integration feature 2013-04-20 18:01:36 +01:00
Matt Pass
bd69d00182 Version 2.2 2013-04-20 17:51:56 +01:00
Matt Pass
7312789e12 jsRegex plugin out, Regexplained in
jsRegex has been broken for a few weeks now and Regexplained has caught
my attention as a very good tool to understand regexes you're writing.
Swapped to this alternative.
2013-04-20 17:50:04 +01:00
Matt Pass
4e765e64ca Establish font size
According to config setting
2013-04-20 16:16:39 +01:00
Matt Pass
660f86018a Magic quotes catch, saving & applying font size
If magic quotes gpc is still on, the server has this set and the php.ini
file hasn't been able to turn it off. This section will remove the extra
slashes set by it to return the content back to normal.
Font size is now saved to the config file on update from settings screen
and also applied on the fly to currently open docs.
2013-04-20 16:16:15 +01:00
Matt Pass
b5050acba0 Set font size on updating settings
New font size passed thru to this function to apply to the class
property on demand
2013-04-20 16:13:24 +01:00
Matt Pass
2fa780236b Turn magic quotes gpc off
On systems that have magic quotes gpc (get post cookie) turned on,
attempt to turn off with a php.ini file. This works for some users but
is dependent on OS and server security settings as to whether this takes
effect.
2013-04-20 16:12:32 +01:00
Matt Pass
831770e7d8 Updateable font size
Font size is set from config setting.
New font size setting available for user input. On changing this, it
updates the CSS class.
2013-04-20 16:11:20 +01:00
Matt Pass
c50102e153 Font size set in body, not CSS reset
This is because we can't update the editor preview if the font size is
set in the CSS reset
2013-04-20 16:09:42 +01:00
Matt Pass
54088daa67 Replace \r\n and \r line endings with \n
To set it to Unix as the default. Opening files with \n line endings in
relatively modern programs will know to use line breaks here if not the
native OS preference
2013-04-20 16:08:26 +01:00
Matt Pass
169312f021 fontSize setting, set at 13px default 2013-04-20 16:07:03 +01:00
Matt Pass
62ab717772 Font size set from user settings
Updateable using settings screen, value in config.php
2013-04-20 16:06:29 +01:00
Matt Pass
6273bcdd3f Removed font-size
To allow the editor's font-size to be controlled by user
2013-04-20 16:05:49 +01:00
Matt Pass
5b894794dd Update to CodeMirror 3.12 2013-04-20 11:50:44 +01:00
Matt Pass
b31c41fdda Version 1.4
NON jQuery version
2013-04-19 08:54:24 +01:00
Matt Pass
2c6bcacb25 New functions to show color picker & insert value
CSS color preview now clickable to show color picker, passing color
value
showColorPicker function shows Farbtastic picker and if we have a color
passed as a param, it sets that
Also new function added to insert color which actually replaces token
value at current cursor position
2013-04-15 16:18:59 +01:00
Matt Pass
ed9b9881b6 Plugins container shifted, new tools contained 2013-04-15 16:13:37 +01:00
Matt Pass
2d2945cc5c Color picker icon added as new tool
Loading the Farbtastic lib too
2013-04-15 16:13:10 +01:00
Matt Pass
3b1a1fbbe2 Color picker icon 2013-04-15 16:10:52 +01:00
Matt Pass
be2f15f77b Farbtastic library added
Not a plugin, but a system level 'tool', so added in the root of
ICEcoder
2013-04-15 16:10:24 +01:00
Matt Pass
3c4872c231 indentSize and indentWithTabs
tabWidth is now indentSize
indentWithTabs is a new setting which can be true/false (false means
spaces)
Applied immediately after updating on settings screen
2013-04-14 14:12:18 +01:00
Matt Pass
8c605674f3 HTML mixed mode added
Needed to highlight docs that contain a mix of HTML, CSS, JS and PHP
2013-04-14 13:11:05 +01:00
mattpass
c1549faca1 Merge pull request #210 from mbirth/master
Use cURL for version check if allow_url_fopen is disabled
2013-03-25 13:33:56 -07:00
Markus Birth
f4b98cd4ff Versioncheck URL in variable to be re-used 2013-03-25 21:23:57 +01:00
Markus Birth
cbeac572f5 Added cURL support for version check if allow_url_fopen is disabled 2013-03-25 20:16:58 +01:00
Matt Pass
f94371f16c Version 2.1
Also mentioned HTML hinting in readme file
2013-03-23 16:38:36 +00:00
Matt Pass
7111a2aee3 Check for updates setting on setup screen
Checkbox added below password box on setup screen so users can choose
not to check for updates before even setting up
2013-03-23 16:28:11 +00:00
Matt Pass
cc82304996 overCloseLink flag and position new tab on close
The 3 x instances where we define closeTabLink needs the
setting/unsetting of a new var flag called overCloseLink. This is so we
can choose not to start or end a drag function.
After processing a closeTab function, set canSwitchTabs back to true in
0.1s
Finally, the newTab left position should be set according to the length
of open files, not 1 less than it and we also need to have a tab width
of 0 but compensate for the padding, so needs to be -18
2013-03-22 16:52:43 +00:00
Matt Pass
3d91b8ab13 Can only start or end tab drag if not over close
Can only begin tabDragStart or tabDragEnd functions if overCloseLink is
false
2013-03-22 16:46:46 +00:00
Matt Pass
9a4ae52df0 show-hint and html-hint now in JS file
Now these are tested and available from the compression helper, I have
created a new JS file to include these 2 files and removed the temporary
hotfix stored in the editor.php file.
2013-03-22 15:55:08 +00:00
Matt Pass
466b6bb1dd Upgrade to CodeMirror 3.11 2013-03-22 08:09:00 +00:00
Matt Pass
facf511621 HTML hint added
Show HTML hint if that's our content type
2013-03-22 08:08:47 +00:00
Matt Pass
c4cada924e Upgrade to CodeMirror 3.11 2013-03-22 08:06:28 +00:00
Matt Pass
99b8a02c0e TinyPNG URL plugin added 2013-03-20 19:18:12 +00:00
Matt Pass
b74ed1490a Default cursor to retain app like feel
Applied to 5 different areas that were previously showing a text cursor
2013-03-20 18:59:16 +00:00
Matt Pass
02f64e318d Title tooltip for codeAssist
To explain what it's used for
2013-03-20 18:58:28 +00:00
Matt Pass
2938014b33 Set tabs on mouse y over 62px not mouseout 2013-03-20 18:41:16 +00:00
Matt Pass
45040555f0 onMouseOut of tabsBar setTabWidths 2013-03-20 18:28:17 +00:00
Matt Pass
591ec57c49 nest display err catching and tab sliding
Only show nest display if we have the cM variable
On close setTabWidths with param to only set newTab position
If we have that param, get values for the last tab by setting i to the
last tab, but if we don't have posOnlyNewTab set, we can set widths &
left pos's of tabs.
2013-03-20 18:27:38 +00:00
Matt Pass
d5626ab7df tab and newTab transitions
tabs have with & left transitions and newTab has left transitions of
0.15s
gives us a nice sliding effect
2013-03-20 18:11:10 +00:00
Matt Pass
2a25efba1a Only show test suite if not in demo mode 2013-03-19 17:17:57 +00:00
Matt Pass
9197d24fff Check for file/folder at location before adding 2013-03-19 17:11:37 +00:00
Matt Pass
9fa87c5141 Get rid of global, CSS & Voke URL tweak
Create a new var - cursorTemp and reduce the amount of code used to set
cursor position
The left side of 1st nest tag should have a cursor: pointer styling
Simplify and tweak the CTRL+i code to prefix voke.fm URLs with CSS or
PHP
2013-03-18 17:10:12 +00:00
Matt Pass
dddf2e9ea1 Arrow now pointing other way 2013-03-17 19:25:23 +00:00
Matt Pass
69ea8838cd Remove default text from these 2 DIVs
Only set on establishing state
2013-03-17 19:24:54 +00:00
Matt Pass
33ea31f1fa Show/hide text next to nest display
New array item for nestDisplayText
Clear this to begin with then set with text if we have a nest, clear
otherwise
Only show the cursor position item if we have a nest
2013-03-17 19:23:49 +00:00
Matt Pass
e2adcabc5b Open file promp function added & help updated
Prompt opens asking user to input relative file path, which on hitting
OK will attempt to open. Triggered with CTRL+o shortcut, which is also
added to help screen. Also clarified CTRL+g and noted it's anywhere, not
elsewhere.
2013-03-16 12:54:04 +00:00
Matt Pass
a33ded4409 New shortcuts, rearranging & tidy up
Shortcuts added for duplicate line & remove line.
Also moved all file manager and more general shortcuts to the right,
giving editing shortcuts more room. Make all alpha keys lowercase and
clarified a couple of areas such as left click instead of just click.
2013-03-16 12:38:03 +00:00
Matt Pass
6161518d8b duplicateLine & removeLine functions
Functions added to duplicate line and remove line. Triggered from CTRL+
+ and CTRL+ - shortcuts whilst in editor area.
2013-03-16 12:28:52 +00:00
Matt Pass
bf40cb2009 Use voke.fm for PHP and CSS searches
Continue to use Google for other searches
2013-03-16 12:06:35 +00:00
Matt Pass
12f8315a84 Voke.fm added as a plugin 2013-03-16 12:06:01 +00:00
Matt Pass
0f460483f3 Show tagName or content after nest display 2013-03-16 11:03:11 +00:00
Matt Pass
bf22cd1638 Now considering depth on highlight nest
Made this chunk of code active by removing 1==2 condition.
Now also defining 3 events in a variable and applying to text section
and arrow start ends. Also needed cursor: pointer.
2013-03-16 10:42:26 +00:00
Matt Pass
e656c89ba1 Hotfix for tagRangeFinder added
Added hotfix of rewritten tagRangeFinder function that Marijn wrote
yesterday. Can be removed when CodeMirror 3.2 is released and we upgrade
to that.
2013-03-16 10:41:05 +00:00
Matt Pass
b8416ed4c1 Version 2.0 2013-03-14 17:50:38 +00:00
Matt Pass
62b8e18c9e New screenshot and requirements only PHP 5 2013-03-14 17:49:47 +00:00
Matt Pass
1e09ccbc0c Extra code to find target tag
Without this extra code, we would just be finding the previous tag with
the matching name and not consider the depth. This code sets the cursor
inside the potentially correct tag, gets the nest location without
updating the display and if it's not at the correct depth, do i++ so we
end up with another for loop to find the tag previous to that one and so
on. The only way to escape out of this is to find a tag at the right
depth.
Set ch before line in the object, so it's similar to the order of the
endPos object.
2013-03-14 17:21:02 +00:00
Matt Pass
76717f6141 Remove ambiance mobile, set FG/BG on 3 themes
The mobile version of ambiance needs the main ambiance class too and I'm
not concerned about this, so dropping. 3 other themes needed a FG & BG
color set to make text visible. Fixed in ICEcoder and also put in a pull
request to CodeMirror.
2013-03-12 17:57:36 +00:00
Matt Pass
33308688aa Ignore deleting nothing & strip trailing slashes
Don't ask the user for any confirmation if there is nothing to delete.
This could occur when you select something, delete it, then try to
delete again.
We need to also strip trailing slashes for deleting files when updating
the file manager. This is much like what we needed to do with adding
files to the root of the file manager. Locations should end without a
trailing slash, but a root is a trailing slash as its only char. A regex
here solves the issue.
2013-03-11 17:40:42 +00:00
Matt Pass
df481aaf07 Ensure we have a slash for the root level
Need a slash to specify the root level when updating the file manager
2013-03-11 17:37:55 +00:00
Matt Pass
82190b330b Remove console.log and taller help screen
Help screen needs to accomodate 2 new shortcuts
2013-03-11 09:02:18 +00:00
Matt Pass
19d8103806 Add shortcut for h1-h7 and line breat at end 2013-03-11 09:01:44 +00:00
Matt Pass
30b6120582 h1-h7 added as tag wrappers, plus line breaker
Can now use the CTRL+Alt+ num 1-7 shortcuts to wrap in h1-h7 tags
Can now also CTRL+Alt+Enter to add a br tag at end of line
2013-03-08 17:38:14 +00:00
Matt Pass
b7aa8bd56c Check if we have a nextSibling first
Test if we have a nextSibling before determining a tagName. This is so
if we have a dir with only subdirs (ie, no files) and the last subdir is
empty, there will be no UL list (which we're looking to maybe remove).
2013-03-08 14:28:18 +00:00
Matt Pass
4aad818888 Remove line return
Was causing issues with adding to root. Needs to be just like its set in
lib/get-branch.php
2013-03-08 14:18:49 +00:00
Matt Pass
68a51af239 Remove trailing slashes on 4 instances
Mainly to cover the root so / becomes nothing so we don't end up with a
double slash. Worth removing anyway incase it's passed elsewhere
somehow/through the API.
2013-03-08 14:17:21 +00:00
Matt Pass
80d64ae4e0 Look to PHP_SELF and not FILE
Will get the correct path for this location both online and locally
2013-03-08 13:32:58 +00:00
Matt Pass
cd295e2315 Initial text file used in unit tests 2013-03-07 09:46:18 +00:00
Matt Pass
80bdd6761b Start of unit tests
Tests 4 things for now - opening, updating, saving & closing
Needs a lot of refining, but the basics of testing and also waiting for
tests to return and failing after 10 secs of waiting are all there
2013-03-07 09:46:01 +00:00
Matt Pass
bf0798d397 object.watch polyfill lib 2013-03-07 09:45:03 +00:00
Matt Pass
e130a87e81 iFrame added to run unit tests within 2013-03-07 09:44:33 +00:00
Matt Pass
34e22c63a0 Show unit test section if we have this available
Contains link to start unit test and DIV to contain result stats as they
run
2013-03-07 09:44:18 +00:00
Matt Pass
70db2a15f4 Shuffle of people who helped in some way with v2 2013-03-05 16:47:34 +00:00
Matt Pass
aaa7be7bff Identify path slashes differently & drop PHP_EOL
Windows may use backslahes as it's dir seperator, but under some PHP
installs it uses the Linux forward slash instead. We could use the
directory seperator PHP var, but I've heard mixed opinions on this and
would rather just detect by looking at what $path, which contains
$docRoot, which is from the $_SERVER variable as this would be more
reliable.
It also wasn't showing the replace button due to a PHP_EOL which ended
the JS string with quote termination.
2013-03-04 16:58:35 +00:00
Matt Pass
000fda848b Get filemtime after saving
We weren't getting the new filemtime after saving and using the
$filemtime var value prior to the save. Needs to be reestablished prior
to setting the array value.
2013-03-04 12:56:58 +00:00
Matt Pass
c0f0595ad7 No need to have die messages
We have user visible alerts now instead so they know when there is a
problem. Much better.
2013-03-04 10:12:09 +00:00
Matt Pass
62ad6dde67 Correction to previous condition swapping
Put the isset bit before the comparison bit, but made a mistake with the
parens bit. This is how it should be.
2013-03-04 10:11:32 +00:00
Matt Pass
8750fe7a43 Pasting of folders in same dir adds (num)
If the dir exists, run thru from 2 to 1billion looking for next
available number and set the $dest name as that. All exactly the same as
how it works for pasting files.
2013-03-02 21:59:01 +00:00
Matt Pass
b0f0bb10ec Pass manual version no value as string
As it may be '2.0 beta', for instance.
2013-03-02 21:45:09 +00:00
Matt Pass
e05f276b6a Condensing & removing code & tweaks
Tweaking comments to be more accurate
Removed snippetLine, no longer used
Handling openClose dir in a more simplistic way, only need to define
iframe.src once
Replaced text is no longer lowercase
Setting the cursor by setting zone as a variable and then using that
Removed 2 x calls to removeSnippet, no longer a function
Correcting unnecessary .parent
2013-03-02 20:59:08 +00:00
Matt Pass
a075934168 Alert user with message if we can't update config
Show a message informing user we can't update config file if we can't
update this when updating settings or previously opened files
2013-03-02 18:18:23 +00:00
Matt Pass
5898ebb5f0 Remove file & folder count
Remove build up of vars, data, functions and triggering the update of
this on load
2013-03-02 18:14:04 +00:00
Matt Pass
d122c83535 No longer dealing with opening thru display
We are no longer setting display block here, this is now done once we
have injected the DOM elems into the tree at that dir. Once that is
done, we set the display to block. We still set none here when
collapsing. This avoids a flash of possibly unsorted files.
2013-03-02 17:17:05 +00:00
Matt Pass
2025e8f10b Check if fileMDT doesn't exist first
Performing comparison when it doesn't is an error. Just swap aruments.
2013-03-02 17:13:39 +00:00
Matt Pass
3339a63268 Link to site, clickable logo, root and people
Logo is now clickable to ICEcoder site and link also added
If we have no root, show as a /
Add Emmet in people list
Also add extra thanks at end to Github contributors
2013-03-02 17:02:07 +00:00
Matt Pass
3d2eef2a69 Now shows st,nd,rd,th on date & no 0 prefixes 2013-03-02 17:00:32 +00:00
Matt Pass
aa9f1074bd Fomatting fix, removed tabs 2013-03-02 16:59:47 +00:00
Matt Pass
545ba36db4 Fixed broken tags 2013-03-02 16:59:27 +00:00
Matt Pass
53b8979861 Syntax only, removing spaces for tabs 2013-03-02 16:59:09 +00:00
Matt Pass
0569a4b633 Remove redundant full tree code
No longer need to consider depths as we are getting folder/file listings
for 1 branch at a time. For this reason, the opening UL will always be
block and the closing one shown when it's the last item and $GET
location is available (ie, not the root).
2013-03-02 16:28:46 +00:00
Matt Pass
cc306475b2 Condensing code & fileMDT fallbacks
Ternary expression to get same saveType results
Create a new $filemtime var and set to 1000000 for non Linux systems
We now have something to compare with
(Tho will always be this on Windows etc)
2013-03-02 16:26:02 +00:00
Matt Pass
3f0982dd7c Tiny color tweak 2013-03-02 16:23:31 +00:00
Matt Pass
017ef727ab Put root LI on one line like subdir items 2013-03-02 14:12:01 +00:00
Matt Pass
1f1635ede3 Don't look to nextSibling again 2013-03-02 13:30:54 +00:00
Matt Pass
f2f2e780b0 Condense onto 1 line and remove extra line break 2013-03-02 13:30:31 +00:00
Matt Pass
f32e7df86a Only do DIV if location, tweak perms & slice fix
We don't want to have the DIV tag as part of the nest, so tuck the start
& end tags into the if $_GET location statements, so they only appear
with get-branch and never get injected into the tree
Instead of not showing perms span tags, show them with blank content
Due to format changes, we need to change the slice range to 28 and -7
2013-03-02 12:49:30 +00:00
Matt Pass
030e219cbd Don't reload root on click & put things on 1 line 2013-03-02 12:35:28 +00:00
Matt Pass
111e8c82c4 Trimming zipTgt and exclude array fix
If we are passing a zip target location, this needs to be trimmed to
avoid a double slash
Also, if we don't have an exclude value provided to make an array from,
use an empty array instead
2013-03-02 11:45:14 +00:00
Matt Pass
d0aad8589d Remove tabs indent setting, update Adminer 2013-03-02 11:27:26 +00:00
Matt Pass
c7eb890ffe Indent tabs setting removed, deleting config fix
Indent tabs removed as a setting
If you are logged in, but have no password set, log user out
(they end up on set password screen then)
2013-03-02 11:27:06 +00:00
Matt Pass
47a9bde70b Indent tabs removed as a setting 2013-03-02 11:24:59 +00:00
Matt Pass
7abadcc6c3 Note added on Emmet using Tabs now 2013-03-02 11:23:53 +00:00
Matt Pass
8a52bcfec2 Updated CSS file for 3.6.3 2013-03-02 11:23:22 +00:00
Matt Pass
81770d2182 New icon (from Twitter avatar) 2013-03-02 11:23:02 +00:00
Matt Pass
0ed030fae3 v1 release
Short tag swapped for <?php tag
Unnecessary parens removed
2013-03-02 11:22:33 +00:00
Matt Pass
a8dd0632f2 Adminer updated to 3.6.3 2013-03-02 11:21:43 +00:00
Matt Pass
04f7e84642 Set $finfo as a blank var to begin with 2013-03-01 17:43:08 +00:00
Matt Pass
efda17ecfa No need to trim $icv, & format indent code 2013-03-01 17:22:27 +00:00
Matt Pass
11c9bf39ff Wording switch only 2013-03-01 17:21:35 +00:00
Matt Pass
c41cfe5ae2 Fix to CodeMirror display area
CodeMirror v3.1 extended it's CSS margin bottom by 30px. Plus also
change BG style font etc to be more in line with editor.php.
2013-03-01 16:48:22 +00:00
Matt Pass
61c6270edd XAMPP needs more specific path
Possibly because index.php is calling lib/settings.php and this in turn
is calling config.php from it's location. Most web servers know you're
calling from the same dir but maybe XAMPP is thinking config.php should
be included from the index.php location? Anyway, fixed with a more
specific path.
2013-03-01 16:23:10 +00:00
Matt Pass
1fe5e6ad8e Set $fileAtts to nothing as a fallback
Strict PHP modes will complain this isn't set otherwise
2013-03-01 16:21:28 +00:00
Matt Pass
8c7fbcd7d4 Fallback for finfo_open
Detect if the finfo_open function is available and if not, grab the file
extension and compare against an array to work out accepted text based
and image based file types to know wether to open in editor or pop open
as an image
2013-03-01 16:20:51 +00:00
Matt Pass
6746fdb98e Upgrade to Emmet for CM 3.1
Needs the tab key removed from keyMap, will look into why this is
2013-03-01 09:02:59 +00:00
Matt Pass
4cf48bb50f Clearer notes on using online or offline 2013-02-28 10:33:32 +00:00
Matt Pass
80a4e54802 Enabling root to be collapsed and condensing code
Added 2nd param to root level so it can be collapsed now.
Also condensed how we're outputting the perms info for the root.
2013-02-28 09:30:07 +00:00
Matt Pass
c19a958629 Change of copyright year & formatting tweaks 2013-02-28 09:18:48 +00:00
Matt Pass
9b969087a5 Byte saving techniques and tweaks
Reducing bytes in a number of places, plus also:
Switching back to previous match highlighter without image data URI, as
is it more visible
Only setting line class for current line if we haven't selected multiple
lines
2013-02-27 17:54:45 +00:00
Matt Pass
121de8090f Remove extra line at end of file 2013-02-27 17:52:05 +00:00
Matt Pass
ae18a10fd8 Update nesting indicator on close tab
Particularly crucial when you close the last tab, so it removes the nest
items of the last doc
2013-02-27 16:27:55 +00:00
Matt Pass
05b0ef75c9 Only set newFileName if not false (ie, something) 2013-02-27 16:09:33 +00:00
Matt Pass
8dfad0aa5d v2.0 beta 2013-02-27 08:12:33 +00:00
Matt Pass
b07f2e9633 Tag wrappers & config template features added 2013-02-27 08:12:20 +00:00
Matt Pass
6ecc435b85 Boot users if not logged in 2013-02-26 17:35:09 +00:00
Matt Pass
a0a70495f0 Always set the scanDir to $docRoot.$iceRoot 2013-02-26 16:57:17 +00:00
Matt Pass
29981dfd52 rename get-tree to get-branch 2013-02-26 16:48:56 +00:00
Matt Pass
86735ac3b7 Upgrade to CodeMirror 3.1 2013-02-26 16:45:14 +00:00
Matt Pass
e5a1a10101 Help screen wider, not as tall
Due to adding extra shortcuts to Help screen, it needs to be bigger to
accomodate this info
2013-02-26 16:30:56 +00:00
Matt Pass
f362a83cfa Add 8 tag wrapper shortcuts & 2 column format
8 new tag wrapper shortcuts added and moving from 1 column to 2 because
of this extra info
2013-02-26 16:30:08 +00:00
Matt Pass
df902fb08e Pull classes out of .help class
We have 2 div containers now, so just define key, plus and shortcut in
isolation
2013-02-26 16:28:51 +00:00
Matt Pass
29de36f348 Removing branch & branchReload, this now default
No need to work with the treeType of branch or branchReload, as
reloading branches are now the default and only tree type
2013-02-26 13:15:09 +00:00
Matt Pass
92e7603aa5 Don't look to nextSibling & open/close fix
No need to set node to nextSibling again, only once is needed
If condition is now else if and calling the get-tree.php script
subsequent times and only if we're opening
This means we fix the open/close dir problem and also reload the dir
each time we open
2013-02-26 13:14:06 +00:00
Matt Pass
e3431f201c Setting treeType is no longer an option
Branch loading is now the default and only way to view a tree
2013-02-26 13:10:18 +00:00
Matt Pass
5c7a6bbf8f No longer creating full trees
Evolved to a branch loading system only, none of this needed anymore
2013-02-26 13:09:36 +00:00
Matt Pass
d6a82d1962 Change of latest version URL, not JSON encoded
Now calling /latest-version which is a tidier URL and also passing user
version no to this
This URL now tracks usage via Google Analytics, so I can begin to get an
idea of which version nos users are on, geo data, overall usage etc
No longer using json_encode as it's not JSON encoded, instead splitting
on line breaks and grabbing first array value as the version no
2013-02-25 16:39:46 +00:00
Matt Pass
a7a5ada4d9 openCloseDir changes onClick & gets dir branch
Change onclick event by setting 2nd param to false so it doesn't reload
Broke setting of node.nextSibling down into 2 new items, may revise this
If we're due to load, pass that through to get-tree.php in the
fileControl iFrame to begin the process
2013-02-24 17:19:51 +00:00
Matt Pass
6ff50cb42d 4 x vars moved to get-tree.php
Need to make use of these for branch injection too
2013-02-24 17:17:00 +00:00
Matt Pass
7ffc89f41b Now working with branch loading!
Only include settings file if we don't have ICEcoder settings available
Need 4 x vars for fileCounts etc available here
Contain tree within DIV which we can get the innerHTML of later for
branch injection
Need .$location when determining if a dir or not and also as part of the
path
If it's a folder and we have a treeType of branch or branchReload, add
true as the 2nd param, false otherwise
If we have a location, we're branch injecting, so get the target DOM
elem, create a new UL, set the style of it, remove whatever UL may be
there before, take the DIV innerHTML with the UL and /UL tags chopped
off, make it the innerHTML of our UL and finally inject into the DOM at
the right position.
2013-02-24 17:15:19 +00:00
Matt Pass
8c1131442b Keep root level out of get-tree.php
This is so we can call get-tree.php and just get the UL list at a dir
location
2013-02-24 14:09:16 +00:00
Matt Pass
c49acc9084 Get a specific dir if treeType is a branch type
Boot user out if not logged in
If the treeType is branch or branchReload, scan the dir at the specific
location, sort into dir and files arrays, nat case sort them and merge.
This is then finalArray and can be used to create the UL list
2013-02-24 13:53:53 +00:00
Matt Pass
f03cfcb0e3 Only create full tree if treeType is 'full'
No need to do any of this if not, so wrapped in an if condition to
exclude otherwise
2013-02-24 13:43:04 +00:00
Matt Pass
460d7c5aea treeType added as a setting
root setting text input a bit smaller to allow for this new dropdown
treeType dropdown added with 3 options for full, branch & branchReload
2013-02-24 13:41:06 +00:00
Matt Pass
50fd681420 treeType setting now updated, with quotes 2013-02-24 13:39:37 +00:00
Matt Pass
70c8ca3a55 Move treeType setting
Move nearer root setting, makes logical sense to be near each other,
plus we only update settings down to tabWidth from settings screen,
would be out of this updated section otherwise.
2013-02-24 13:37:37 +00:00
Matt Pass
1234f789a4 Move display of UL list into include file
This is so we can use for other purposes shortly, such as different
treeTypes
2013-02-24 11:20:07 +00:00
Matt Pass
25fd009be3 Focus on editor in 4ms
Wasn't focusing after switch, this solves the issue
2013-02-24 11:07:02 +00:00
Matt Pass
9ffab47f83 fileManager() gone, new openCloseDir() function
The fileManager function was only being called once onLoad of files.php
This was really only adding onClick events and setting classNames and
style.displays, no need to do this really with JS, merged into files.php
as it's creating the tree
openCloseDir function now available to deal with open & close of dirs
This is less code, less JS to run on boot and paves the way towards
multiple treeTypes
2013-02-20 18:09:00 +00:00
Matt Pass
38c46f3d5c Merge onClick events & removing fileManager()
Remove triggering fileManager() onLoad, this is the only place it's used
Set the class, style and onClick events to replicate what that function
was doing
2013-02-20 18:05:48 +00:00
Matt Pass
3a0c33c5cf treeType setting added 2013-02-20 18:03:07 +00:00
Matt Pass
5d6b057361 Replace URL special chars when folder sorting
When sorting folders into order, special chars such as $, -, _ etc were
causing sorting issues while other chars such as _ worked OK. This is
all due to the char's ref in relation to a-z, 0-9 and A-Z chars in the
char table. By replacing these URL special chars (defined in RFC 1738
specification) with a \ (the only char not allowed in a file/folder
name), we are levelling these chars out, so we can safely focus on
alphanum sorting only.
2013-02-20 09:34:29 +00:00
Matt Pass
8fcbdc8ea0 Reinstate files.php only
Stupid line breaks
2013-02-20 09:32:19 +00:00
Matt Pass
a774f9052d Tag wrap on a tag cursor pos & other Esc = cancel
Need to set cursor position to start line, not end
Accidentally removed cancel shortcut
2013-02-18 09:58:27 +00:00
Matt Pass
2d79b5a988 Reset fileInput and only act if we have file
Reset fileInput back to an empty value after upload (success or fail)
Only if value isn't empty action the upload
2013-02-17 18:04:32 +00:00
Matt Pass
86ae5e14b4 Remove the child on delete
Instead of just hiding. So we can delete an item and create a new one of
the name name at that dir location without issues.
2013-02-17 17:47:06 +00:00
Matt Pass
8153d4a139 Spelling fix - Folders 2013-02-17 17:32:28 +00:00
Matt Pass
3e80d86628 Change install info to 757 on backups & lib dirs 2013-02-17 17:26:59 +00:00
Matt Pass
a097330772 Duplicates config template file on boot
If the config file doesn't exist, create a new one by copying the
template file
2013-02-17 17:26:25 +00:00
Matt Pass
5545743bd8 config-sample.php is now config-template.php 2013-02-17 16:53:22 +00:00
mattpass
ccd212f839 Merge pull request #156 from aharris88/master
Ignore config.php
2013-02-17 08:30:54 -08:00
Matt Pass
5697625a7d Line breaks and indents for DIV tag wrapping
If the user is wrapping the selected with a DIV tag, add line breaks
were needed and indentation as appropriate.
2013-02-17 16:26:10 +00:00
aharris88
3d54005332 Rename config.php to config-sample.php and ignore config.php 2013-02-15 11:56:15 -06:00
Matt Pass
a5894dfae8 Alt key down flag & tag wrapper
New variable flag for altKeyDown just like ctrlKeyDown
Restructured key tracking system into more modular chunks
If CTRL+Alt+key, check if we need to trigger tagWrapper function.
Currently have 8 common tags setup (for div, span, p, a, b, i, strong,
em)
tagWrapper function receives any tag and wraps selected text with that
tag
If it's an a tag tho, it adds a href="" to the start and sets cursor
between quotes
2013-02-15 10:28:17 +00:00
Matt Pass
b3aa6e37b9 Arrow pointing to logo, dataMessage DIV
When in demoMode, there is an arrow now pointing to the logo as a quick
guide to using ICEcoder. Will likely be only used by the ICEcoder
website.
dataMessage DIV available to display on demand and insert content into
Slight adjust to subsequent data/info content.
2013-02-12 20:01:12 +00:00
Matt Pass
e4e7661a3d Now passing dataMessage instead of alert
No longer showing alert message, was a bit annoying. This is a better
solution, shows how out of date you are and also provides a link to the
ICEcoder website to get an update.
2013-02-12 19:58:45 +00:00
Matt Pass
9fe38ad649 Taller help screen and dataMessage function
Help screen is now taller to accomodate 4 new FM actions
dataMessage function available to display DIV and then add message into
it on demand
2013-02-12 19:57:40 +00:00
Matt Pass
a8a03a831a Info on 4 x file manager actions
Provide info on left click, double click, CTRL + click and right click
2013-02-12 19:56:13 +00:00
Matt Pass
0df4db9286 Big arrow added 2013-02-12 19:55:03 +00:00
Matt Pass
e4599e3076 Hide paste option until we have copied something
Changes display from none to block when we copy a file/folder ref.
2013-02-11 17:12:59 +00:00
Matt Pass
1a0d8933dc Adjust style values
Now we have an extra stylesheet, this should be [3] not [2]
The class ref for the tabs class is actually [5] not [4]
2013-02-11 17:08:21 +00:00
Matt Pass
00af30281c Fix bad comment tag, revise matchhilight styles
The comment after .CodeMirror-scroll should be inside /* */
Merge matchhighlight and the focused version, add pseudo styles to
override main selected style. May look at changing this in future.
As we removed a class, the tab class is no longer the 6th, but now 5th
class
2013-02-11 17:07:19 +00:00
Matt Pass
8c85b3098d Inform user if there is no file/folder to copy 2013-02-09 17:18:23 +00:00
Matt Pass
000607f8e0 Considering empty folder should be opposite arg
Should be if the childNodes.length < 3, was doing the opposite. Oops!
2013-02-09 15:43:47 +00:00
Matt Pass
82e3698dd2 Change of operator to consider empty files
Was giving false positives on false, !==false is what we require here
2013-02-09 15:42:20 +00:00
Matt Pass
0dd9535a5b Allow opening of empty files
Allow 'empty' to appear in the MIME type, so we can accept things such
as application/x-empty, which indicates an empty file. Wouldn't open
them previously.
2013-02-09 15:07:45 +00:00
Matt Pass
088b3f60ea tagNestExceptions array removed
No longer used (was only used by the ropey close tag system, now
removed)
2013-02-09 14:50:02 +00:00
Matt Pass
c118159121 Selected text forced to be white on blue 2013-02-09 14:49:10 +00:00
Matt Pass
5fad745220 Remove old close tag system, tweak highlights
Old and quite ropey close tag system removed in favour of the
CodeMirrror closetag addon
2 x classes to define highlighted text now forced to be white on blue
everywhere
2013-02-09 14:48:41 +00:00
Matt Pass
02b41bfbdc Matchhilight & autoCloseTags updates
CSS class changed needed for matchhilight and removed color setting
snippetFrame now unused, removed
2 new options set to autoCloseTags and highlightSelectionMatches
No longer setting thisCM.matchHighlight anymore
Set a if 1==2 condition on the previous (and quite ropey) code that did
autoclosing to stop it happening, will remove next.
2013-02-09 14:03:52 +00:00
Matt Pass
82ab3faca3 Upgrade CodeMirror to 3.02 2013-02-09 13:27:13 +00:00
Matt Pass
df74757e83 Quick test only 2013-02-08 17:02:10 +00:00
Matt Pass
a21772f3c2 New screenshot & 2 new features 2013-02-08 14:55:35 +00:00
Matt Pass
cbd930a340 Version 1.6 2013-02-08 14:33:21 +00:00
Matt Pass
9f129c9781 Tidying up recent changes re tabs
tagDragMouseXStart should be tabDragMouseXStart
Ensuring vars are defined at top of function & in usage order
Forgot a var in the foor loop
2013-02-08 14:32:45 +00:00
Matt Pass
18931e94b0 Move 5 x tab functions to tabs section of file 2013-02-08 14:03:19 +00:00
Matt Pass
1520828dff Set tabWidth to begin with
To avoid having a gap after closing all tabs
Also removed thisWidth, moved this value into tabWidth value
2013-02-08 13:56:55 +00:00
Matt Pass
43223d1677 Perform alphanum sort on files not paths
Run new currentArrayFull array inline with currentArray
This provides a full path and the currentArray then becomes a file array
only
nextValueFull provides the value which we find the index of to insert
into alphaArray
2013-02-08 13:44:43 +00:00
Matt Pass
3fb9836fc8 Tab dragging, sortTabs, alphaTabs & dynamic close
closeButtons now take the parent nodes' ID to know what to close, also
image inside has no ID anymore, targetted via
childNodes[0].childNodes[0] from parent tab
var diffX at top of function
Setting both tabSlide and tabDrag classes on start of tab dragging now
Massively improved and finished tabDragStart, tabDragMove & tabDragEnd
functions
New functions - sortTabs and alphaTabs
No need to get cM on redoTabHightlight, and it also sets the close tab
BG color by targeting the child elems, no need to consider or update an
ID on this anymore.
Now asking to close on all tabs
2013-02-08 10:57:49 +00:00
Matt Pass
8cd5a10ea8 Trigger tabDragEnd onmouseup on html tag
This is so you can drag and release in either the editor or files areas
and it will release the tab.
2013-02-08 10:21:48 +00:00
Matt Pass
da1850896b alphaTabs button & this.id on 2 x hardcoded items
New alphaTabs button added next to closeAllTabs
Titles added to both so user knows what these are
The argument on the mousedown and mouseup events now look to the ID of
the item, rather than being hardcoded values. This is so we only have to
change the ID on the tab and the rest falls into line.
No longer doing onmouseup here, this is now handled at the top level
(index.php)
2013-02-08 10:19:18 +00:00
Matt Pass
336ef01dee loadedFile to replace all & chars for textarea
This is so &amp; becomes &amp;amp; ...what you draw out of the textarea
is then &amp;
In turn this allows all HTML entities of this style to work and as we
aren't using PHP's htmlentities(), we don't end with junk chars on
slanted apostrophes, degree symbols etc.
2013-02-08 10:12:35 +00:00
Matt Pass
246bf189b5 tabDrag and alphaTabs classes
New tabDrag class to determin transition of 0s
New alphaTabs class to show next to closeAllTabs button
Move closeAllTabs across to make room for this
2013-02-08 10:09:34 +00:00
Matt Pass
825effadd9 Syntax formatting change only 2013-02-08 10:05:04 +00:00
Matt Pass
51f53855f8 Alpha tabs button added 2013-02-08 10:04:24 +00:00
Matt Pass
65fa29fbb8 Determining which tabs to swap on release
When you release the mouse after dragging now, we're able to decide
which tabs were swapped.
2013-02-04 09:04:34 +00:00
Matt Pass
5bcfa06e19 New refresh FM icon 2013-02-04 09:03:20 +00:00
Matt Pass
b01218958f Tab dragging working with variable widths
Not working to the 150px default, now working to the possibly smaller
tab widths
2013-02-03 17:24:21 +00:00
Matt Pass
7887f0e7a1 Tab sliding and opacity
On start of the drag, all tabs apart from the one we are dragging are
given the additional tabSlide class so they slide in the background.
Better use of swapWith variable and now setting background tabs position
more effectively plus also setting opacity and returning to full opacity
on release of mouse button.
On that event we also add the tabSlide class on our released tab so it
slides into place, set the tab widths/positions again and after 150ms
(after our released tab has finished it's slide transition), reset the
zIndex, classname for everything back to the initial state.
2013-02-03 16:58:12 +00:00
Matt Pass
f522502938 Classes to transition tabs left 0.15s
By default this is 0s, tabs other than the one being dragged is given
the extra tabSlide class so they slide around in the background. The tab
being dragged will also slide into place when the mouse button is
released.
2013-02-03 16:52:30 +00:00
Matt Pass
c7f533cf0a New tab dragging system & del removeSnippet
Previously we were using HTML5 dragging, but this is too freerange, we
want to restrict to a region and x-axis only. Replaced with new system,
doesn't actually do anything yet when you release mouse but UI works.
Deleted the removeSnippet function, no longer used.
2013-02-03 15:19:55 +00:00
Matt Pass
a3107de33e tab & newTab absolute positioning & zindex of 1
So we can control their position easily
2013-02-03 15:13:25 +00:00
Matt Pass
e69a3249e5 Updating to work with new tab dragging
onMouseUp on HTML tag now triggers tabDragEnd
Tabs no longer have 'draggable' attribute, onMouseDown replaces onClick,
which also fires tabDragStart event and onMouseUp also fires tabDragEnd
newTab has an ID so we can control it
2013-02-03 15:11:38 +00:00
mattpass
f3c24f05e0 Merge pull request #152 from aharris88/master
.gitkeep files for empty directories
2013-02-01 14:42:49 -08:00
aharris88
20364bb1d7 Replace placeholder backups/readme.txt with .gitkeep 2013-02-01 15:59:49 -06:00
mattpass
3d1c92dae4 Merge pull request #149 from aharris88/master
Add .gitignore file to ignore backups and error-log
2013-02-01 11:27:41 -08:00
aharris88
4048895c6b Ignore backups and error-log 2013-02-01 12:01:24 -06:00
aharris88
991908bd8d Add elseif onto if statement in lib/settings.php 2013-02-01 11:56:29 -06:00
mattpass
8ff559dbef Merge pull request #147 from aharris88/master
header issue #146
2013-02-01 09:31:34 -08:00
aharris88
d7d483ef9c Fix header issue #146 2013-02-01 11:25:13 -06:00
Matt Pass
b11064e3a8 Autoopen for more than 0 files, transparent close
Only prompt to open if we have 0 files
Close button is transparent if not changed
2013-02-01 16:05:12 +00:00
Matt Pass
409d35b29b Asks if you want to open previous files on boot
Now shows ask message to ask if you'd like to open previous files.
Also shows the no of files and list
2013-02-01 13:44:28 +00:00
Matt Pass
811cf40cd7 Close all tabs sets new arg for setPreviousFiles
closeAllTabs now passes 2nd arg to closeTab, setting true if we've got
more tabs to close, false if not. The dontSetPV arg determins if we
should setPreviousFiles or not. This means we only set this once all
tabs have been closed.
Also fixed issue with setting previousFiles, wasn't setting on 'CLEAR',
ie, no tabs open. Now sets a blank to handle this.
2013-01-31 17:59:44 +00:00
Matt Pass
3aa9d23ac6 wireframe|cc added as a URL plugin 2013-01-31 14:35:44 +00:00
Matt Pass
9c8bb08454 Remove htmlentities() to avoid junk chars
Not needed and just caused junk/rubbish.
2013-01-31 14:05:47 +00:00
Matt Pass
2c28af0dd7 Check if !ctrlKeyDown on deciding on change
An estimated 20% of the time CTRL+key combos would register as a change.
Readded checking on !ctrlKeyDown to fix this.
2013-01-24 07:54:25 +00:00
Matt Pass
cc6bd40b15 Var name fix, should be $renamed 2013-01-24 07:36:11 +00:00
Matt Pass
5221ba0959 Shows server message to indicate file upload
Users aren't always aware if a file upload has happened OK, this server
message helps put the point across.
2013-01-23 19:48:56 +00:00
Matt Pass
61f132327d Type boosting on function, removed fallback
Removed 'f ' as a type booster, now being more specific by requiring the
user type 'function'. This is consistent with if and for. It also won't
work as the autocomplete script will want to trigger instead and display
items starting with 'f'.
Removed showing the snippet display as a fallback.
2013-01-23 19:39:59 +00:00
Matt Pass
826730e88b Code completion added for JS via simple hint
Simple hint .css, .js and the javascript hinter added
No need to have Ctrl-Up or Down to do nothing, handled in icecoder.js
Ctrl-Space triggers the autocomplete command
This is setup as a function which runs if the cursor is in a JS block
2013-01-23 19:37:51 +00:00
Matt Pass
5cdb08c35f Using CodeMirror 3.01 now 2013-01-23 19:35:17 +00:00
Matt Pass
9806d3705a Snippet display no longer fallback
If you now hit CTRL+space and you're not expanding function, if or for,
it will fallthrough the CodeMirror addon of code completion rather than
show this snippet info screen.
2013-01-23 19:34:57 +00:00
Matt Pass
55e6e66df6 Update CodeMirror 3 to 3.01, incl code hinting
Also includes simple-hint.js, javascript-hint.js and simple-hint.css
2013-01-23 19:33:40 +00:00
Matt Pass
0d38b23a60 Fixed tab filename display & rename title
Simplified background on .tab class, also set it to relative positioning
and removed text having a RTL direction and being right aligned. Then
set the .closeTab class to also be absolutely positioned and 7px from
the right edge. Now the text is left aligned and close tab link right
aligned!
Renaming open tabs also now updates title
Fixed 2 x titles to have slashes at start now we aren't using RTL
direction
2013-01-22 20:26:08 +00:00
Matt Pass
07fd0ab6bf Fixes to rename processes
renameFile didn't have i var set, so I have set this to be what is
expected so we can now rename open files again.
shortURL was having it's slashes replaced with pipes in a few areas but
not all which meant it wasn't changing the onmouseover argument. Now
doing this on setting the var now which means a fix and less code.
Also forgot to alter the title attribute, now changing that on rename
too.
2013-01-22 20:01:54 +00:00
Matt Pass
6036b0635d Error catching on rename function
Test if the rename has taken place and only if it has, call
updateFileManagerList etc. If it hasn't set the renamed var to false. If
renamed var is false, show the improved error message (gives note on
permissions).
2013-01-22 19:58:21 +00:00
Matt Pass
74f678076a Don't update openFiles array on upload
Calling updateFileManagerList now includes a 6th argument and if a true
value is passed, then it's indicating an uploaded file and shouldn't set
the openFiles array value.
2013-01-22 18:49:48 +00:00
Matt Pass
ef157d71f2 Version 1.5 2013-01-18 17:19:47 +00:00
Matt Pass
0b718e0fbf Styling of a elems for manual link 2013-01-18 17:09:42 +00:00
Matt Pass
809af86c16 Link to manual from Help screen
Passes through version number to be used by function in the URL that
shows the manual
2013-01-18 17:08:26 +00:00
Matt Pass
449e8e2c4a Function to show the ICEcoder manual
Shows the manual in the mediaContainer popup, also passing through the
version number so in the future we can show relevant info.
2013-01-18 17:07:09 +00:00
Matt Pass
01c8a10463 DOCTYPE must be set before anything else
By setting doctype before settings.php, the script elements etc are
loaded after defining the doctype to be html5. This issue only affects
IE9 and not Chrome or Firefox.
2013-01-18 12:59:41 +00:00
Matt Pass
27da7ed0fe Close all tabs function added
Close button added to left of tabs as close all button. Simple styling
added to match tabs. closeAllTabs function added to close all tabs from
last back to first.
2013-01-18 12:13:09 +00:00
Matt Pass
685116c555 Can now pass mode argument to switchMode()
Allows you to set a mode to use via the API
2013-01-18 11:50:16 +00:00
Matt Pass
0c4741c793 Disallow traversing to parent dir 2013-01-15 11:54:12 +00:00
Matt Pass
4da7024f91 Upload files function added
This function will get uploaded file details for each file uploaded and
when uploaded, move the file to the user selected folder. Also shows
error message if there is an issue. Either way, when finished it will
clear the selectedFiles, file menu and hide the loading mask to return
user to normal view.
2013-01-15 11:47:31 +00:00
Matt Pass
b49a2cc52d 2 new functions to select & submit uploaded files
Select function sets uploadedDir hidden form field and clicks the file
input button for user. Submit function is automatically triggered when
files value changes, which then shows the loading screen and submits the
form. preventDefault is also needed here.
2013-01-15 11:45:06 +00:00
Matt Pass
c0fe50cd2f Upload files option added
Clicking on new 'Upload File(s)' option triggers a function to click the
file input button. onChange of this value, the submit function is called
to post the form
2013-01-15 11:43:24 +00:00
Matt Pass
497efaabf0 Fixing multiple & path issies in delete function
Establish a fullPath to begin with and use that
Only show relative path in message re not being able to delete
2013-01-13 16:10:19 +00:00
Matt Pass
2ee777739f Paste same name files with postfixed next nos
$dest now has double slashes replaced with singles
Now also considers if a file exists before copying
If it does, next available number up to 1 billion postfixed to end of
filename
Copy with that new filename, next number postfixed
Slight adjust to filename shown in file manager to match
2013-01-13 15:13:34 +00:00
Matt Pass
deb3ad5359 Logout link added
Logout link added to left of version no, next to logo in top right
Clicking this triggers the logout function, which directs the browser to
the same window location with ?logout QS
The settings.php file is run again (via inclusion) and finding the QS
var, sets the loggedIn var set to false (as a double measure to the
session also being destroyed) and header location boots user back to
login screen
2013-01-13 14:37:36 +00:00
Matt Pass
3f1801ef2b Postfix comparison to check path
Establish a stringExtra value of a slash or nothing depending on wether
we are considering the root level or not
When comparing the folder against the selectedFile array value, postfix
both with a slash (could be any char though). This is to eliminate path
mismatches.
2013-01-13 13:46:59 +00:00
Matt Pass
ca8e92e443 Establish cM and consider in if statement
Avoids errors on content = cM.getValue line
2013-01-13 13:09:46 +00:00
Matt Pass
c514e4a1ad Replace pipes with slahes before opening URL 2013-01-13 12:53:59 +00:00
Matt Pass
ec28de40c9 Checkerboard BG behind image popups
Show checkerboard image behind image popups so you can see transparent
areas on images. Needed black BG as a fallback too.
2013-01-13 12:47:48 +00:00
Matt Pass
14053fbfdd Fixed banned & selected finding issues
Remove old echo test message
Added new $foundInSelFile var
Both this and bFile are false to begin with
Testing on not false of bannedFile in strpos
If we find our matching item is one of our selected files, set
$foundInSelFile to true
Only if we don't have a banned file and either we have no selected
files, or we do have some and have a match, push to array etc
PHP_EOL's to make source easier to read
2012-12-30 19:24:17 +00:00
Matt Pass
464030808c No need to preload the snippet display
Doesn't help with repainting issue
2012-12-30 19:20:43 +00:00
Matt Pass
d2377bff34 Close button for snippet-display 2012-12-30 19:20:09 +00:00
210 changed files with 19449 additions and 10828 deletions

9
.gitignore vendored Normal file
View File

@@ -0,0 +1,9 @@
error-log.txt
backups/*
!backups/index.php
lib/config-*
plugins/*
!plugins/index.php
test/test-file1.txt
tmp/*
!tmp/index.php

File diff suppressed because one or more lines are too long

View File

@@ -1,6 +0,0 @@
.cm-s-ambiance.CodeMirror {
-webkit-box-shadow: none;
-moz-box-shadow: none;
-o-box-shadow: none;
box-shadow: none;
}

View File

@@ -1,25 +0,0 @@
.cm-s-eclipse span.cm-meta {color: #FF1717;}
.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }
.cm-s-eclipse span.cm-atom {color: #219;}
.cm-s-eclipse span.cm-number {color: #164;}
.cm-s-eclipse span.cm-def {color: #00f;}
.cm-s-eclipse span.cm-variable {color: black;}
.cm-s-eclipse span.cm-variable-2 {color: #0000C0;}
.cm-s-eclipse span.cm-variable-3 {color: #0000C0;}
.cm-s-eclipse span.cm-property {color: black;}
.cm-s-eclipse span.cm-operator {color: black;}
.cm-s-eclipse span.cm-comment {color: #3F7F5F;}
.cm-s-eclipse span.cm-string {color: #2A00FF;}
.cm-s-eclipse span.cm-string-2 {color: #f50;}
.cm-s-eclipse span.cm-error {color: #f00;}
.cm-s-eclipse span.cm-qualifier {color: #555;}
.cm-s-eclipse span.cm-builtin {color: #30a;}
.cm-s-eclipse span.cm-bracket {color: #cc7;}
.cm-s-eclipse span.cm-tag {color: #170;}
.cm-s-eclipse span.cm-attribute {color: #00c;}
.cm-s-eclipse span.cm-link {color: #219;}
.cm-s-eclipse .CodeMirror-matchingbracket {
border:1px solid grey;
color:black !important;;
}

View File

@@ -1,10 +0,0 @@
.cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;}
.cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;}
.cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;}
.cm-s-elegant span.cm-variable {color: black;}
.cm-s-elegant span.cm-variable-2 {color: #b11;}
.cm-s-elegant span.cm-qualifier {color: #555;}
.cm-s-elegant span.cm-keyword {color: #730;}
.cm-s-elegant span.cm-builtin {color: #30a;}
.cm-s-elegant span.cm-error {background-color: #fdd;}
.cm-s-elegant span.cm-link {color: #762;}

View File

@@ -1,21 +0,0 @@
.cm-s-erlang-dark.CodeMirror { background: #002240; color: white; }
.cm-s-erlang-dark div.CodeMirror-selected { background: #b36539 !important; }
.cm-s-erlang-dark .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
.cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; }
.cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white !important; }
.cm-s-erlang-dark span.cm-atom { color: #845dc4; }
.cm-s-erlang-dark span.cm-attribute { color: #ff80e1; }
.cm-s-erlang-dark span.cm-bracket { color: #ff9d00; }
.cm-s-erlang-dark span.cm-builtin { color: #eeaaaa; }
.cm-s-erlang-dark span.cm-comment { color: #7777ff; }
.cm-s-erlang-dark span.cm-def { color: #ee77aa; }
.cm-s-erlang-dark span.cm-error { color: #9d1e15; }
.cm-s-erlang-dark span.cm-keyword { color: #ffee80; }
.cm-s-erlang-dark span.cm-meta { color: #50fefe; }
.cm-s-erlang-dark span.cm-number { color: #ffd0d0; }
.cm-s-erlang-dark span.cm-operator { color: #dd1111; }
.cm-s-erlang-dark span.cm-string { color: #3ad900; }
.cm-s-erlang-dark span.cm-tag { color: #9effff; }
.cm-s-erlang-dark span.cm-variable { color: #50fe50; }
.cm-s-erlang-dark span.cm-variable-2 { color: #ee00ee; }

View File

@@ -1,44 +0,0 @@
/*
http://lesscss.org/ dark theme
Ported to CodeMirror by Peter Kroon
*/
.cm-s-lesser-dark {
line-height: 1.3em;
}
.cm-s-lesser-dark {
font-family: 'Bitstream Vera Sans Mono', 'DejaVu Sans Mono', 'Monaco', Courier, monospace !important;
}
.cm-s-lesser-dark.CodeMirror { background: #262626; color: #EBEFE7; text-shadow: 0 -1px 1px #262626; }
.cm-s-lesser-dark div.CodeMirror-selected {background: #45443B !important;} /* 33322B*/
.cm-s-lesser-dark .CodeMirror-cursor { border-left: 1px solid white !important; }
.cm-s-lesser-dark pre { padding: 0 8px; }/*editable code holder*/
div.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/
.cm-s-lesser-dark .CodeMirror-gutters { background: #262626; border-right:1px solid #aaa; }
.cm-s-lesser-dark .CodeMirror-linenumber { color: #777; }
.cm-s-lesser-dark span.cm-keyword { color: #599eff; }
.cm-s-lesser-dark span.cm-atom { color: #C2B470; }
.cm-s-lesser-dark span.cm-number { color: #B35E4D; }
.cm-s-lesser-dark span.cm-def {color: white;}
.cm-s-lesser-dark span.cm-variable { color:#D9BF8C; }
.cm-s-lesser-dark span.cm-variable-2 { color: #669199; }
.cm-s-lesser-dark span.cm-variable-3 { color: white; }
.cm-s-lesser-dark span.cm-property {color: #92A75C;}
.cm-s-lesser-dark span.cm-operator {color: #92A75C;}
.cm-s-lesser-dark span.cm-comment { color: #666; }
.cm-s-lesser-dark span.cm-string { color: #BCD279; }
.cm-s-lesser-dark span.cm-string-2 {color: #f50;}
.cm-s-lesser-dark span.cm-meta { color: #738C73; }
.cm-s-lesser-dark span.cm-error { color: #9d1e15; }
.cm-s-lesser-dark span.cm-qualifier {color: #555;}
.cm-s-lesser-dark span.cm-builtin { color: #ff9e59; }
.cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; }
.cm-s-lesser-dark span.cm-tag { color: #669199; }
.cm-s-lesser-dark span.cm-attribute {color: #00c;}
.cm-s-lesser-dark span.cm-header {color: #a0a;}
.cm-s-lesser-dark span.cm-quote {color: #090;}
.cm-s-lesser-dark span.cm-hr {color: #999;}
.cm-s-lesser-dark span.cm-link {color: #00c;}

View File

@@ -1,28 +0,0 @@
/* Based on Sublime Text's Monokai theme */
.cm-s-monokai.CodeMirror {background: #272822; color: #f8f8f2;}
.cm-s-monokai div.CodeMirror-selected {background: #49483E !important;}
.cm-s-monokai .CodeMirror-gutters {background: #272822; border-right: 0px;}
.cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;}
.cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;}
.cm-s-monokai span.cm-comment {color: #75715e;}
.cm-s-monokai span.cm-atom {color: #ae81ff;}
.cm-s-monokai span.cm-number {color: #ae81ff;}
.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;}
.cm-s-monokai span.cm-keyword {color: #f92672;}
.cm-s-monokai span.cm-string {color: #e6db74;}
.cm-s-monokai span.cm-variable {color: #a6e22e;}
.cm-s-monokai span.cm-variable-2 {color: #9effff;}
.cm-s-monokai span.cm-def {color: #fd971f;}
.cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;}
.cm-s-monokai span.cm-bracket {color: #f8f8f2;}
.cm-s-monokai span.cm-tag {color: #f92672;}
.cm-s-monokai span.cm-link {color: #ae81ff;}
.cm-s-monokai .CodeMirror-matchingbracket {
text-decoration: underline;
color: white !important;
}

File diff suppressed because one or more lines are too long

View File

@@ -1,27 +0,0 @@
/* Taken from the popular Visual Studio Vibrant Ink Schema */
.cm-s-vibrant-ink.CodeMirror { background: black; color: white; }
.cm-s-vibrant-ink .CodeMirror-selected { background: #35493c !important; }
.cm-s-vibrant-ink .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
.cm-s-vibrant-ink .CodeMirror-linenumber { color: #d0d0d0; }
.cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white !important; }
.cm-s-vibrant-ink .cm-keyword { color: #CC7832; }
.cm-s-vibrant-ink .cm-atom { color: #FC0; }
.cm-s-vibrant-ink .cm-number { color: #FFEE98; }
.cm-s-vibrant-ink .cm-def { color: #8DA6CE; }
.cm-s-vibrant-ink span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #FFC66D }
.cm-s-vibrant-ink span.cm-variable-3, .cm-s-cobalt span.cm-def { color: #FFC66D }
.cm-s-vibrant-ink .cm-operator { color: #888; }
.cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; }
.cm-s-vibrant-ink .cm-string { color: #A5C25C }
.cm-s-vibrant-ink .cm-string-2 { color: red }
.cm-s-vibrant-ink .cm-meta { color: #D8FA3C; }
.cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; }
.cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; }
.cm-s-vibrant-ink .cm-tag { color: #8DA6CE; }
.cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; }
.cm-s-vibrant-ink .cm-header { color: #FF6400; }
.cm-s-vibrant-ink .cm-hr { color: #AEAEAE; }
.cm-s-vibrant-ink .cm-link { color: blue; }

View File

@@ -1,46 +0,0 @@
/*
Copyright (C) 2011 by MarkLogic Corporation
Author: Mike Brevoort <mike@brevoort.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
.cm-s-xq-dark.CodeMirror { background: #0a001f; color: #f8f8f8; }
.cm-s-xq-dark span.CodeMirror-selected { background: #a8f !important; }
.cm-s-xq-dark .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
.cm-s-xq-dark .CodeMirror-linenumber { color: #f8f8f8; }
.cm-s-xq-dark .CodeMirror-cursor { border-left: 1px solid white !important; }
.cm-s-xq-dark span.cm-keyword {color: #FFBD40;}
.cm-s-xq-dark span.cm-atom {color: #6C8CD5;}
.cm-s-xq-dark span.cm-number {color: #164;}
.cm-s-xq-dark span.cm-def {color: #FFF; text-decoration:underline;}
.cm-s-xq-dark span.cm-variable {color: #FFF;}
.cm-s-xq-dark span.cm-variable-2 {color: #EEE;}
.cm-s-xq-dark span.cm-variable-3 {color: #DDD;}
.cm-s-xq-dark span.cm-property {}
.cm-s-xq-dark span.cm-operator {}
.cm-s-xq-dark span.cm-comment {color: gray;}
.cm-s-xq-dark span.cm-string {color: #9FEE00;}
.cm-s-xq-dark span.cm-meta {color: yellow;}
.cm-s-xq-dark span.cm-error {color: #f00;}
.cm-s-xq-dark span.cm-qualifier {color: #FFF700;}
.cm-s-xq-dark span.cm-builtin {color: #30a;}
.cm-s-xq-dark span.cm-bracket {color: #cc7;}
.cm-s-xq-dark span.cm-tag {color: #FFBD40;}
.cm-s-xq-dark span.cm-attribute {color: #FFF700;}

View File

@@ -1,4 +1,4 @@
Copyright (C) 2012 by Marijn Haverbeke <marijnh@gmail.com>
Copyright (C) 2016 by Marijn Haverbeke <marijnh@gmail.com> and others
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -17,7 +17,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Please note that some subdirectories of the CodeMirror distribution
include their own LICENSE files, and are released under different
licences.

20
CodeMirror/addon/fold/foldgutter.css vendored Normal file
View File

@@ -0,0 +1,20 @@
.CodeMirror-foldmarker {
color: blue;
text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px;
font-family: arial;
line-height: .3;
cursor: pointer;
}
.CodeMirror-foldgutter {
width: .7em;
}
.CodeMirror-foldgutter-open,
.CodeMirror-foldgutter-folded {
cursor: pointer;
}
.CodeMirror-foldgutter-open:after {
content: "\25BE";
}
.CodeMirror-foldgutter-folded:after {
content: "\25B8";
}

38
CodeMirror/addon/hint/show-hint.css vendored Normal file
View File

@@ -0,0 +1,38 @@
.CodeMirror-hints {
position: absolute;
z-index: 10;
overflow: hidden;
list-style: none;
margin: 0;
padding: 2px;
-webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
-moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);
box-shadow: 2px 3px 5px rgba(0,0,0,.2);
border-radius: 3px;
border: 1px solid silver;
background: white;
font-size: 90%;
font-family: monospace;
max-height: 20em;
overflow-y: auto;
}
.CodeMirror-hint {
margin: 0;
padding: 0 4px;
border-radius: 2px;
max-width: 19em;
overflow: hidden;
white-space: pre;
color: black;
cursor: pointer;
}
li.CodeMirror-hint-active {
background: #08f;
color: white;
}

73
CodeMirror/addon/lint/lint.css vendored Normal file
View File

@@ -0,0 +1,73 @@
/* The lint marker gutter */
.CodeMirror-lint-markers {
width: 12px; margin-left: 2px;
}
.CodeMirror-lint-tooltip {
background-color: infobackground;
border: 1px solid black;
border-radius: 4px 4px 4px 4px;
color: infotext;
font-family: monospace;
font-size: 10pt;
overflow: hidden;
padding: 2px 5px;
position: fixed;
white-space: pre;
white-space: pre-wrap;
z-index: 100;
max-width: 600px;
opacity: 0;
transition: opacity .4s;
-moz-transition: opacity .4s;
-webkit-transition: opacity .4s;
-o-transition: opacity .4s;
-ms-transition: opacity .4s;
}
.CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning {
background-position: left bottom;
background-repeat: repeat-x;
}
.CodeMirror-lint-mark-error {
background-image:
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==")
;
}
.CodeMirror-lint-mark-warning {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII=");
}
.CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning {
background-position: center center;
background-repeat: no-repeat;
cursor: help;
display: inline-block;
height: 16px;
width: 16px;
vertical-align: middle;
position: relative;
}
.CodeMirror-lint-message-error, .CodeMirror-lint-message-warning {
padding-left: 18px;
background-position: top left;
background-repeat: no-repeat;
}
.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII=");
}
.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII=");
}
.CodeMirror-lint-marker-multiple {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC");
background-repeat: no-repeat;
background-position: right bottom;
width: 100%; height: 100%;
}

View File

@@ -0,0 +1,68 @@
.CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div {
position: absolute;
background: #ccc;
-moz-box-sizing: border-box;
box-sizing: border-box;
border: 1px solid #bbb;
border-radius: 2px;
}
.CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical {
position: absolute;
z-index: 6;
background: #eee;
}
.CodeMirror-simplescroll-horizontal {
bottom: 0; left: 0;
height: 8px;
}
.CodeMirror-simplescroll-horizontal div {
bottom: 0;
height: 100%;
}
.CodeMirror-simplescroll-vertical {
right: 0; top: 0;
width: 8px;
}
.CodeMirror-simplescroll-vertical div {
right: 0;
width: 100%;
}
.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler {
display: none;
background: transparent;
}
.CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div {
position: absolute;
background: rgba(0,198,255,0.1);
border-radius: 0;
}
.CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical {
position: absolute;
z-index: 6;
}
.CodeMirror-overlayscroll-horizontal {
bottom: 0; left: 0;
height: 12px;
}
.CodeMirror-overlayscroll-horizontal div {
bottom: 0;
height: 100%;
}
.CodeMirror-overlayscroll-vertical {
right: 0; top: 0;
width: 6px;
}
.CodeMirror-overlayscroll-vertical div {
display: none;
right: 0;
width: 100%;
}

12
CodeMirror/lib/codemirror-compressed.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -4,10 +4,7 @@
/* Set height, width, borders, and global font properties here */
font-family: monospace;
height: 300px;
}
.CodeMirror-scroll {
/* Set scrolling behaviour here */
overflow: auto;
color: black;
}
/* PADDING */
@@ -19,7 +16,7 @@
padding: 0 4px; /* Horizontal padding of content */
}
.CodeMirror-scrollbar-filler {
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
background-color: white; /* The little square between H and V scrollbars */
}
@@ -28,6 +25,7 @@
.CodeMirror-gutters {
border-right: 1px solid #ddd;
background-color: #f7f7f7;
white-space: nowrap;
}
.CodeMirror-linenumbers {}
.CodeMirror-linenumber {
@@ -35,68 +33,110 @@
min-width: 20px;
text-align: right;
color: #999;
white-space: nowrap;
}
.CodeMirror-guttermarker { color: black; }
.CodeMirror-guttermarker-subtle { color: #999; }
/* CURSOR */
.CodeMirror pre.CodeMirror-cursor {
.CodeMirror-cursor {
border-left: 1px solid black;
border-right: none;
width: 0;
}
/* Shown when moving in bi-directional text */
.CodeMirror pre.CodeMirror-secondarycursor {
.CodeMirror div.CodeMirror-secondarycursor {
border-left: 1px solid silver;
}
.cm-keymap-fat-cursor pre.CodeMirror-cursor {
.cm-fat-cursor .CodeMirror-cursor {
width: auto;
border: 0;
background: transparent;
background: rgba(0, 200, 0, .4);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#6600c800, endColorstr=#4c00c800);
background: #7e7;
}
/* Kludge to turn off filter in ie9+, which also accepts rgba */
.cm-keymap-fat-cursor pre.CodeMirror-cursor:not(#nonsense_id) {
filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
.cm-fat-cursor div.CodeMirror-cursors {
z-index: 1;
}
.cm-animate-fat-cursor {
width: auto;
border: 0;
-webkit-animation: blink 1.06s steps(1) infinite;
-moz-animation: blink 1.06s steps(1) infinite;
animation: blink 1.06s steps(1) infinite;
background-color: #7e7;
}
@-moz-keyframes blink {
0% {}
50% { background-color: transparent; }
100% {}
}
@-webkit-keyframes blink {
0% {}
50% { background-color: transparent; }
100% {}
}
@keyframes blink {
0% {}
50% { background-color: transparent; }
100% {}
}
/* Can style cursor different in overwrite (non-insert) mode */
.CodeMirror pre.CodeMirror-cursor.CodeMirror-overwrite {}
.CodeMirror-overwrite .CodeMirror-cursor {}
.cm-tab { display: inline-block; text-decoration: inherit; }
.CodeMirror-ruler {
border-left: 1px solid #ccc;
position: absolute;
}
/* DEFAULT THEME */
.cm-s-default .cm-header {color: blue;}
.cm-s-default .cm-quote {color: #090;}
.cm-negative {color: #d44;}
.cm-positive {color: #292;}
.cm-header, .cm-strong {font-weight: bold;}
.cm-em {font-style: italic;}
.cm-link {text-decoration: underline;}
.cm-strikethrough {text-decoration: line-through;}
.cm-s-default .cm-keyword {color: #708;}
.cm-s-default .cm-atom {color: #219;}
.cm-s-default .cm-number {color: #164;}
.cm-s-default .cm-def {color: #00f;}
.cm-s-default .cm-variable {color: black;}
.cm-s-default .cm-variable,
.cm-s-default .cm-punctuation,
.cm-s-default .cm-property,
.cm-s-default .cm-operator {}
.cm-s-default .cm-variable-2 {color: #05a;}
.cm-s-default .cm-variable-3 {color: #085;}
.cm-s-default .cm-property {color: black;}
.cm-s-default .cm-operator {color: black;}
.cm-s-default .cm-comment {color: #a50;}
.cm-s-default .cm-string {color: #a11;}
.cm-s-default .cm-string-2 {color: #f50;}
.cm-s-default .cm-meta {color: #555;}
.cm-s-default .cm-error {color: #f00;}
.cm-s-default .cm-qualifier {color: #555;}
.cm-s-default .cm-builtin {color: #30a;}
.cm-s-default .cm-bracket {color: #997;}
.cm-s-default .cm-tag {color: #170;}
.cm-s-default .cm-attribute {color: #00c;}
.cm-s-default .cm-header {color: blue;}
.cm-s-default .cm-quote {color: #090;}
.cm-s-default .cm-hr {color: #999;}
.cm-s-default .cm-link {color: #00c;}
.cm-negative {color: #d44;}
.cm-positive {color: #292;}
.cm-header, .cm-strong {font-weight: bold;}
.cm-em {font-style: italic;}
.cm-emstrong {font-style: italic; font-weight: bold;}
.cm-link {text-decoration: underline;}
.cm-s-default .cm-error {color: #f00;}
.cm-invalidchar {color: #f00;}
.CodeMirror-composing { border-bottom: 2px solid; }
/* Default styles for common addons */
div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
.CodeMirror-activeline-background {background: #e8f2ff;}
/* STOP */
@@ -104,28 +144,30 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
the editor. You probably shouldn't touch them. */
.CodeMirror {
line-height: 1;
position: relative;
overflow: hidden;
background: white;
}
.CodeMirror-scroll {
overflow: scroll !important; /* Things will break if this is overridden */
/* 30px is the magic margin used to hide the element's real scrollbars */
/* See overflow: hidden in .CodeMirror, and the paddings in .CodeMirror-sizer */
/* See overflow: hidden in .CodeMirror */
margin-bottom: -30px; margin-right: -30px;
padding-bottom: 30px; padding-right: 30px;
padding-bottom: 30px;
height: 100%;
outline: none; /* Prevent dragging from highlighting the element */
position: relative;
}
.CodeMirror-sizer {
position: relative;
border-right: 30px solid transparent;
}
/* The fake, visible scrollbars. Used to force redraw during scrolling
before actuall scrolling happens, thus preventing shaking and
before actual scrolling happens, thus preventing shaking and
flickering artifacts. */
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler {
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
position: absolute;
z-index: 6;
display: none;
@@ -142,33 +184,54 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
}
.CodeMirror-scrollbar-filler {
right: 0; bottom: 0;
z-index: 6;
}
.CodeMirror-gutter-filler {
left: 0; bottom: 0;
}
.CodeMirror-gutters {
position: absolute; left: 0; top: 0;
height: 100%;
z-index: 3;
}
.CodeMirror-gutter {
white-space: normal;
height: 100%;
display: inline-block;
vertical-align: top;
margin-bottom: -30px;
/* Hack to make IE7 behave */
*zoom:1;
*display:inline;
}
.CodeMirror-gutter-wrapper {
position: absolute;
z-index: 4;
background: none !important;
border: none !important;
}
.CodeMirror-gutter-background {
position: absolute;
top: 0; bottom: 0;
z-index: 4;
}
.CodeMirror-gutter-elt {
position: absolute;
cursor: default;
z-index: 4;
}
.CodeMirror-gutter-wrapper {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}
.CodeMirror-lines {
cursor: text;
min-height: 1px; /* prevents collapsing before first draw */
}
.CodeMirror pre {
/* Reset some styles that the rest of the page might have set */
-moz-border-radius: 0; -webkit-border-radius: 0; -o-border-radius: 0; border-radius: 0;
-moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
border-width: 0;
background: transparent;
font-family: inherit;
@@ -181,12 +244,14 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
z-index: 2;
position: relative;
overflow: visible;
-webkit-tap-highlight-color: transparent;
}
.CodeMirror-wrap pre {
word-wrap: break-word;
white-space: pre-wrap;
word-break: normal;
}
.CodeMirror-linebackground {
position: absolute;
left: 0; right: 0; top: 0; bottom: 0;
@@ -196,34 +261,56 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
.CodeMirror-linewidget {
position: relative;
z-index: 2;
overflow: auto;
}
.CodeMirror-wrap .CodeMirror-scroll {
overflow-x: hidden;
.CodeMirror-widget {}
.CodeMirror-code {
outline: none;
}
/* Force content-box sizing for the elements where we expect it */
.CodeMirror-scroll,
.CodeMirror-sizer,
.CodeMirror-gutter,
.CodeMirror-gutters,
.CodeMirror-linenumber {
-moz-box-sizing: content-box;
box-sizing: content-box;
}
.CodeMirror-measure {
position: absolute;
width: 100%; height: 0px;
width: 100%;
height: 0;
overflow: hidden;
visibility: hidden;
}
.CodeMirror-cursor { position: absolute; }
.CodeMirror-measure pre { position: static; }
.CodeMirror pre.CodeMirror-cursor {
position: absolute;
div.CodeMirror-cursors {
visibility: hidden;
border-right: none;
width: 0;
position: relative;
z-index: 3;
}
.CodeMirror-focused pre.CodeMirror-cursor {
div.CodeMirror-dragcursors {
visibility: visible;
}
.CodeMirror-focused div.CodeMirror-cursors {
visibility: visible;
}
.CodeMirror-selected { background: #d9d9d9; }
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
.CodeMirror-crosshair { cursor: crosshair; }
.CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
.CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
.CodeMirror-searching {
.cm-searching {
background: #ffa;
background: rgba(255, 255, 0, .4);
}
@@ -231,9 +318,18 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
/* IE7 hack to prevent it from returning funny offsetTops on the spans */
.CodeMirror span { *vertical-align: text-bottom; }
/* Used to force a border model for a node */
.cm-force-border { padding-right: .1px; }
@media print {
/* Hide the cursor when printing */
.CodeMirror pre.CodeMirror-cursor {
.CodeMirror div.CodeMirror-cursors {
visibility: hidden;
}
}
/* See issue #2901 */
.cm-tab-wrap-hack:after { content: ''; }
/* Help users use markselection to safely style text background */
span.CodeMirror-selectedtext { background: none; }

41
CodeMirror/theme/3024-day.css vendored Normal file
View File

@@ -0,0 +1,41 @@
/*
Name: 3024 day
Author: Jan T. Sott (http://github.com/idleberg)
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
*/
.cm-s-3024-day.CodeMirror { background: #f7f7f7; color: #3a3432; }
.cm-s-3024-day div.CodeMirror-selected { background: #d6d5d4; }
.cm-s-3024-day .CodeMirror-line::selection, .cm-s-3024-day .CodeMirror-line > span::selection, .cm-s-3024-day .CodeMirror-line > span > span::selection { background: #d6d5d4; }
.cm-s-3024-day .CodeMirror-line::-moz-selection, .cm-s-3024-day .CodeMirror-line > span::-moz-selection, .cm-s-3024-day .CodeMirror-line > span > span::selection { background: #d9d9d9; }
.cm-s-3024-day .CodeMirror-gutters { background: #f7f7f7; border-right: 0px; }
.cm-s-3024-day .CodeMirror-guttermarker { color: #db2d20; }
.cm-s-3024-day .CodeMirror-guttermarker-subtle { color: #807d7c; }
.cm-s-3024-day .CodeMirror-linenumber { color: #807d7c; }
.cm-s-3024-day .CodeMirror-cursor { border-left: 1px solid #5c5855; }
.cm-s-3024-day span.cm-comment { color: #cdab53; }
.cm-s-3024-day span.cm-atom { color: #a16a94; }
.cm-s-3024-day span.cm-number { color: #a16a94; }
.cm-s-3024-day span.cm-property, .cm-s-3024-day span.cm-attribute { color: #01a252; }
.cm-s-3024-day span.cm-keyword { color: #db2d20; }
.cm-s-3024-day span.cm-string { color: #fded02; }
.cm-s-3024-day span.cm-variable { color: #01a252; }
.cm-s-3024-day span.cm-variable-2 { color: #01a0e4; }
.cm-s-3024-day span.cm-def { color: #e8bbd0; }
.cm-s-3024-day span.cm-bracket { color: #3a3432; }
.cm-s-3024-day span.cm-tag { color: #db2d20; }
.cm-s-3024-day span.cm-link { color: #a16a94; }
.cm-s-3024-day span.cm-error { background: #db2d20; color: #5c5855; }
.cm-s-3024-day .CodeMirror-activeline-background { background: #e8f2ff; }
.cm-s-3024-day .CodeMirror-matchingbracket { text-decoration: underline; color: #a16a94 !important; }

39
CodeMirror/theme/3024-night.css vendored Normal file
View File

@@ -0,0 +1,39 @@
/*
Name: 3024 night
Author: Jan T. Sott (http://github.com/idleberg)
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
*/
.cm-s-3024-night.CodeMirror { background: #090300; color: #d6d5d4; }
.cm-s-3024-night div.CodeMirror-selected { background: #3a3432; }
.cm-s-3024-night .CodeMirror-line::selection, .cm-s-3024-night .CodeMirror-line > span::selection, .cm-s-3024-night .CodeMirror-line > span > span::selection { background: rgba(58, 52, 50, .99); }
.cm-s-3024-night .CodeMirror-line::-moz-selection, .cm-s-3024-night .CodeMirror-line > span::-moz-selection, .cm-s-3024-night .CodeMirror-line > span > span::-moz-selection { background: rgba(58, 52, 50, .99); }
.cm-s-3024-night .CodeMirror-gutters { background: #090300; border-right: 0px; }
.cm-s-3024-night .CodeMirror-guttermarker { color: #db2d20; }
.cm-s-3024-night .CodeMirror-guttermarker-subtle { color: #5c5855; }
.cm-s-3024-night .CodeMirror-linenumber { color: #5c5855; }
.cm-s-3024-night .CodeMirror-cursor { border-left: 1px solid #807d7c; }
.cm-s-3024-night span.cm-comment { color: #cdab53; }
.cm-s-3024-night span.cm-atom { color: #a16a94; }
.cm-s-3024-night span.cm-number { color: #a16a94; }
.cm-s-3024-night span.cm-property, .cm-s-3024-night span.cm-attribute { color: #01a252; }
.cm-s-3024-night span.cm-keyword { color: #db2d20; }
.cm-s-3024-night span.cm-string { color: #fded02; }
.cm-s-3024-night span.cm-variable { color: #01a252; }
.cm-s-3024-night span.cm-variable-2 { color: #01a0e4; }
.cm-s-3024-night span.cm-def { color: #e8bbd0; }
.cm-s-3024-night span.cm-bracket { color: #d6d5d4; }
.cm-s-3024-night span.cm-tag { color: #db2d20; }
.cm-s-3024-night span.cm-link { color: #a16a94; }
.cm-s-3024-night span.cm-error { background: #db2d20; color: #807d7c; }
.cm-s-3024-night .CodeMirror-activeline-background { background: #2F2F2F; }
.cm-s-3024-night .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }

32
CodeMirror/theme/abcdef.css vendored Normal file
View File

@@ -0,0 +1,32 @@
.cm-s-abcdef.CodeMirror { background: #0f0f0f; color: #defdef; }
.cm-s-abcdef div.CodeMirror-selected { background: #515151; }
.cm-s-abcdef .CodeMirror-line::selection, .cm-s-abcdef .CodeMirror-line > span::selection, .cm-s-abcdef .CodeMirror-line > span > span::selection { background: rgba(56, 56, 56, 0.99); }
.cm-s-abcdef .CodeMirror-line::-moz-selection, .cm-s-abcdef .CodeMirror-line > span::-moz-selection, .cm-s-abcdef .CodeMirror-line > span > span::-moz-selection { background: rgba(56, 56, 56, 0.99); }
.cm-s-abcdef .CodeMirror-gutters { background: #555; border-right: 2px solid #314151; }
.cm-s-abcdef .CodeMirror-guttermarker { color: #222; }
.cm-s-abcdef .CodeMirror-guttermarker-subtle { color: azure; }
.cm-s-abcdef .CodeMirror-linenumber { color: #FFFFFF; }
.cm-s-abcdef .CodeMirror-cursor { border-left: 1px solid #00FF00; }
.cm-s-abcdef span.cm-keyword { color: darkgoldenrod; font-weight: bold; }
.cm-s-abcdef span.cm-atom { color: #77F; }
.cm-s-abcdef span.cm-number { color: violet; }
.cm-s-abcdef span.cm-def { color: #fffabc; }
.cm-s-abcdef span.cm-variable { color: #abcdef; }
.cm-s-abcdef span.cm-variable-2 { color: #cacbcc; }
.cm-s-abcdef span.cm-variable-3 { color: #def; }
.cm-s-abcdef span.cm-property { color: #fedcba; }
.cm-s-abcdef span.cm-operator { color: #ff0; }
.cm-s-abcdef span.cm-comment { color: #7a7b7c; font-style: italic;}
.cm-s-abcdef span.cm-string { color: #2b4; }
.cm-s-abcdef span.cm-meta { color: #C9F; }
.cm-s-abcdef span.cm-qualifier { color: #FFF700; }
.cm-s-abcdef span.cm-builtin { color: #30aabc; }
.cm-s-abcdef span.cm-bracket { color: #8a8a8a; }
.cm-s-abcdef span.cm-tag { color: #FFDD44; }
.cm-s-abcdef span.cm-attribute { color: #DDFF00; }
.cm-s-abcdef span.cm-error { color: #FF0000; }
.cm-s-abcdef span.cm-header { color: aquamarine; font-weight: bold; }
.cm-s-abcdef span.cm-link { color: blueviolet; }
.cm-s-abcdef .CodeMirror-activeline-background { background: #314151; }

View File

@@ -2,6 +2,9 @@
/* Color scheme */
.cm-s-ambiance .cm-header { color: blue; }
.cm-s-ambiance .cm-quote { color: #24C2C7; }
.cm-s-ambiance .cm-keyword { color: #cda869; }
.cm-s-ambiance .cm-atom { color: #CF7EA9; }
.cm-s-ambiance .cm-number { color: #78CF8A; }
@@ -10,43 +13,37 @@
.cm-s-ambiance .cm-variable-2 { color: #eed1b3; }
.cm-s-ambiance .cm-variable-3 { color: #faded3; }
.cm-s-ambiance .cm-property { color: #eed1b3; }
.cm-s-ambiance .cm-operator {color: #fa8d6a;}
.cm-s-ambiance .cm-operator { color: #fa8d6a; }
.cm-s-ambiance .cm-comment { color: #555; font-style:italic; }
.cm-s-ambiance .cm-string { color: #8f9d6a; }
.cm-s-ambiance .cm-string-2 { color: #9d937c; }
.cm-s-ambiance .cm-meta { color: #D2A8A1; }
.cm-s-ambiance .cm-error { color: #AF2018; }
.cm-s-ambiance .cm-qualifier { color: yellow; }
.cm-s-ambiance .cm-builtin { color: #9999cc; }
.cm-s-ambiance .cm-bracket { color: #24C2C7; }
.cm-s-ambiance .cm-tag { color: #fee4ff }
.cm-s-ambiance .cm-attribute { color: #9B859D; }
.cm-s-ambiance .cm-header {color: blue;}
.cm-s-ambiance .cm-quote { color: #24C2C7; }
.cm-s-ambiance .cm-tag { color: #fee4ff; }
.cm-s-ambiance .cm-attribute { color: #9B859D; }
.cm-s-ambiance .cm-hr { color: pink; }
.cm-s-ambiance .cm-link { color: #F4C20B; }
.cm-s-ambiance .cm-special { color: #FF9D00; }
.cm-s-ambiance .cm-error { color: #AF2018; }
.cm-s-ambiance .CodeMirror-matchingbracket { color: #0f0; }
.cm-s-ambiance .CodeMirror-nonmatchingbracket { color: #f22; }
.cm-s-ambiance .CodeMirror-selected {
background: rgba(255, 255, 255, 0.15);
}
.cm-s-ambiance .CodeMirror-focused .CodeMirror-selected {
background: rgba(255, 255, 255, 0.10);
}
.cm-s-ambiance div.CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }
.cm-s-ambiance.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
.cm-s-ambiance .CodeMirror-line::selection, .cm-s-ambiance .CodeMirror-line > span::selection, .cm-s-ambiance .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-ambiance .CodeMirror-line::-moz-selection, .cm-s-ambiance .CodeMirror-line > span::-moz-selection, .cm-s-ambiance .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
/* Editor styling */
.cm-s-ambiance.CodeMirror {
line-height: 1.40em;
font-family: Monaco, Menlo,"Andale Mono","lucida console","Courier New",monospace !important;
color: #E6E1DC;
background-color: #202020;
-webkit-box-shadow: inset 0 0 10px black;
-moz-box-shadow: inset 0 0 10px black;
-o-box-shadow: inset 0 0 10px black;
box-shadow: inset 0 0 10px black;
}
@@ -58,15 +55,16 @@
.cm-s-ambiance .CodeMirror-linenumber {
text-shadow: 0px 1px 1px #4d4d4d;
color: #222;
color: #111;
padding: 0 5px;
}
.cm-s-ambiance .CodeMirror-lines .CodeMirror-cursor {
border-left: 1px solid #7991E8;
}
.cm-s-ambiance .CodeMirror-guttermarker { color: #aaa; }
.cm-s-ambiance .CodeMirror-guttermarker-subtle { color: #111; }
.cm-s-ambiance .activeline {
.cm-s-ambiance .CodeMirror-cursor { border-left: 1px solid #7991E8; }
.cm-s-ambiance .CodeMirror-activeline-background {
background: none repeat scroll 0% 0% rgba(255, 255, 255, 0.031);
}

38
CodeMirror/theme/base16-dark.css vendored Normal file
View File

@@ -0,0 +1,38 @@
/*
Name: Base16 Default Dark
Author: Chris Kempson (http://chriskempson.com)
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
*/
.cm-s-base16-dark.CodeMirror { background: #151515; color: #e0e0e0; }
.cm-s-base16-dark div.CodeMirror-selected { background: #303030; }
.cm-s-base16-dark .CodeMirror-line::selection, .cm-s-base16-dark .CodeMirror-line > span::selection, .cm-s-base16-dark .CodeMirror-line > span > span::selection { background: rgba(48, 48, 48, .99); }
.cm-s-base16-dark .CodeMirror-line::-moz-selection, .cm-s-base16-dark .CodeMirror-line > span::-moz-selection, .cm-s-base16-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(48, 48, 48, .99); }
.cm-s-base16-dark .CodeMirror-gutters { background: #151515; border-right: 0px; }
.cm-s-base16-dark .CodeMirror-guttermarker { color: #ac4142; }
.cm-s-base16-dark .CodeMirror-guttermarker-subtle { color: #505050; }
.cm-s-base16-dark .CodeMirror-linenumber { color: #505050; }
.cm-s-base16-dark .CodeMirror-cursor { border-left: 1px solid #b0b0b0; }
.cm-s-base16-dark span.cm-comment { color: #8f5536; }
.cm-s-base16-dark span.cm-atom { color: #aa759f; }
.cm-s-base16-dark span.cm-number { color: #aa759f; }
.cm-s-base16-dark span.cm-property, .cm-s-base16-dark span.cm-attribute { color: #90a959; }
.cm-s-base16-dark span.cm-keyword { color: #ac4142; }
.cm-s-base16-dark span.cm-string { color: #f4bf75; }
.cm-s-base16-dark span.cm-variable { color: #90a959; }
.cm-s-base16-dark span.cm-variable-2 { color: #6a9fb5; }
.cm-s-base16-dark span.cm-def { color: #d28445; }
.cm-s-base16-dark span.cm-bracket { color: #e0e0e0; }
.cm-s-base16-dark span.cm-tag { color: #ac4142; }
.cm-s-base16-dark span.cm-link { color: #aa759f; }
.cm-s-base16-dark span.cm-error { background: #ac4142; color: #b0b0b0; }
.cm-s-base16-dark .CodeMirror-activeline-background { background: #202020; }
.cm-s-base16-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }

38
CodeMirror/theme/base16-light.css vendored Normal file
View File

@@ -0,0 +1,38 @@
/*
Name: Base16 Default Light
Author: Chris Kempson (http://chriskempson.com)
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
*/
.cm-s-base16-light.CodeMirror { background: #f5f5f5; color: #202020; }
.cm-s-base16-light div.CodeMirror-selected { background: #e0e0e0; }
.cm-s-base16-light .CodeMirror-line::selection, .cm-s-base16-light .CodeMirror-line > span::selection, .cm-s-base16-light .CodeMirror-line > span > span::selection { background: #e0e0e0; }
.cm-s-base16-light .CodeMirror-line::-moz-selection, .cm-s-base16-light .CodeMirror-line > span::-moz-selection, .cm-s-base16-light .CodeMirror-line > span > span::-moz-selection { background: #e0e0e0; }
.cm-s-base16-light .CodeMirror-gutters { background: #f5f5f5; border-right: 0px; }
.cm-s-base16-light .CodeMirror-guttermarker { color: #ac4142; }
.cm-s-base16-light .CodeMirror-guttermarker-subtle { color: #b0b0b0; }
.cm-s-base16-light .CodeMirror-linenumber { color: #b0b0b0; }
.cm-s-base16-light .CodeMirror-cursor { border-left: 1px solid #505050; }
.cm-s-base16-light span.cm-comment { color: #8f5536; }
.cm-s-base16-light span.cm-atom { color: #aa759f; }
.cm-s-base16-light span.cm-number { color: #aa759f; }
.cm-s-base16-light span.cm-property, .cm-s-base16-light span.cm-attribute { color: #90a959; }
.cm-s-base16-light span.cm-keyword { color: #ac4142; }
.cm-s-base16-light span.cm-string { color: #f4bf75; }
.cm-s-base16-light span.cm-variable { color: #90a959; }
.cm-s-base16-light span.cm-variable-2 { color: #6a9fb5; }
.cm-s-base16-light span.cm-def { color: #d28445; }
.cm-s-base16-light span.cm-bracket { color: #202020; }
.cm-s-base16-light span.cm-tag { color: #ac4142; }
.cm-s-base16-light span.cm-link { color: #aa759f; }
.cm-s-base16-light span.cm-error { background: #ac4142; color: #505050; }
.cm-s-base16-light .CodeMirror-activeline-background { background: #DDDCDC; }
.cm-s-base16-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }

34
CodeMirror/theme/bespin.css vendored Normal file
View File

@@ -0,0 +1,34 @@
/*
Name: Bespin
Author: Mozilla / Jan T. Sott
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
*/
.cm-s-bespin.CodeMirror {background: #28211c; color: #9d9b97;}
.cm-s-bespin div.CodeMirror-selected {background: #36312e !important;}
.cm-s-bespin .CodeMirror-gutters {background: #28211c; border-right: 0px;}
.cm-s-bespin .CodeMirror-linenumber {color: #666666;}
.cm-s-bespin .CodeMirror-cursor {border-left: 1px solid #797977 !important;}
.cm-s-bespin span.cm-comment {color: #937121;}
.cm-s-bespin span.cm-atom {color: #9b859d;}
.cm-s-bespin span.cm-number {color: #9b859d;}
.cm-s-bespin span.cm-property, .cm-s-bespin span.cm-attribute {color: #54be0d;}
.cm-s-bespin span.cm-keyword {color: #cf6a4c;}
.cm-s-bespin span.cm-string {color: #f9ee98;}
.cm-s-bespin span.cm-variable {color: #54be0d;}
.cm-s-bespin span.cm-variable-2 {color: #5ea6ea;}
.cm-s-bespin span.cm-def {color: #cf7d34;}
.cm-s-bespin span.cm-error {background: #cf6a4c; color: #797977;}
.cm-s-bespin span.cm-bracket {color: #9d9b97;}
.cm-s-bespin span.cm-tag {color: #cf6a4c;}
.cm-s-bespin span.cm-link {color: #9b859d;}
.cm-s-bespin .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
.cm-s-bespin .CodeMirror-activeline-background { background: #404040; }

View File

@@ -1,25 +1,32 @@
/* Port of TextMate's Blackboard theme */
.cm-s-blackboard.CodeMirror { background: #0C1021; color: #F8F8F8; }
.cm-s-blackboard .CodeMirror-selected { background: #253B76 !important; }
.cm-s-blackboard div.CodeMirror-selected { background: #253B76; }
.cm-s-blackboard .CodeMirror-line::selection, .cm-s-blackboard .CodeMirror-line > span::selection, .cm-s-blackboard .CodeMirror-line > span > span::selection { background: rgba(37, 59, 118, .99); }
.cm-s-blackboard .CodeMirror-line::-moz-selection, .cm-s-blackboard .CodeMirror-line > span::-moz-selection, .cm-s-blackboard .CodeMirror-line > span > span::-moz-selection { background: rgba(37, 59, 118, .99); }
.cm-s-blackboard .CodeMirror-gutters { background: #0C1021; border-right: 0; }
.cm-s-blackboard .CodeMirror-guttermarker { color: #FBDE2D; }
.cm-s-blackboard .CodeMirror-guttermarker-subtle { color: #888; }
.cm-s-blackboard .CodeMirror-linenumber { color: #888; }
.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7 !important; }
.cm-s-blackboard .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }
.cm-s-blackboard .cm-keyword { color: #FBDE2D; }
.cm-s-blackboard .cm-atom { color: #D8FA3C; }
.cm-s-blackboard .cm-number { color: #D8FA3C; }
.cm-s-blackboard .cm-def { color: #8DA6CE; }
.cm-s-blackboard .cm-variable { color: #FF6400; }
.cm-s-blackboard .cm-operator { color: #FBDE2D;}
.cm-s-blackboard .cm-operator { color: #FBDE2D; }
.cm-s-blackboard .cm-comment { color: #AEAEAE; }
.cm-s-blackboard .cm-string { color: #61CE3C; }
.cm-s-blackboard .cm-string-2 { color: #61CE3C; }
.cm-s-blackboard .cm-meta { color: #D8FA3C; }
.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }
.cm-s-blackboard .cm-builtin { color: #8DA6CE; }
.cm-s-blackboard .cm-tag { color: #8DA6CE; }
.cm-s-blackboard .cm-attribute { color: #8DA6CE; }
.cm-s-blackboard .cm-header { color: #FF6400; }
.cm-s-blackboard .cm-hr { color: #AEAEAE; }
.cm-s-blackboard .cm-link { color: #8DA6CE; }
.cm-s-blackboard .cm-error { background: #9D1E15; color: #F8F8F8; }
.cm-s-blackboard .CodeMirror-activeline-background { background: #3C3636; }
.cm-s-blackboard .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }

View File

@@ -1,8 +1,12 @@
.cm-s-cobalt.CodeMirror { background: #002240; color: white; }
.cm-s-cobalt div.CodeMirror-selected { background: #b36539 !important; }
.cm-s-cobalt div.CodeMirror-selected { background: #b36539; }
.cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }
.cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }
.cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
.cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; }
.cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
.cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; }
.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white !important; }
.cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-cobalt span.cm-comment { color: #08f; }
.cm-s-cobalt span.cm-atom { color: #845dc4; }
@@ -12,7 +16,10 @@
.cm-s-cobalt span.cm-meta { color: #ff9d00; }
.cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; }
.cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; }
.cm-s-cobalt span.cm-error { color: #9d1e15; }
.cm-s-cobalt span.cm-bracket { color: #d8d8d8; }
.cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; }
.cm-s-cobalt span.cm-link { color: #845dc4; }
.cm-s-cobalt span.cm-error { color: #9d1e15; }
.cm-s-cobalt .CodeMirror-activeline-background { background: #002D57; }
.cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }

33
CodeMirror/theme/colorforth.css vendored Normal file
View File

@@ -0,0 +1,33 @@
.cm-s-colorforth.CodeMirror { background: #000000; color: #f8f8f8; }
.cm-s-colorforth .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
.cm-s-colorforth .CodeMirror-guttermarker { color: #FFBD40; }
.cm-s-colorforth .CodeMirror-guttermarker-subtle { color: #78846f; }
.cm-s-colorforth .CodeMirror-linenumber { color: #bababa; }
.cm-s-colorforth .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-colorforth span.cm-comment { color: #ededed; }
.cm-s-colorforth span.cm-def { color: #ff1c1c; font-weight:bold; }
.cm-s-colorforth span.cm-keyword { color: #ffd900; }
.cm-s-colorforth span.cm-builtin { color: #00d95a; }
.cm-s-colorforth span.cm-variable { color: #73ff00; }
.cm-s-colorforth span.cm-string { color: #007bff; }
.cm-s-colorforth span.cm-number { color: #00c4ff; }
.cm-s-colorforth span.cm-atom { color: #606060; }
.cm-s-colorforth span.cm-variable-2 { color: #EEE; }
.cm-s-colorforth span.cm-variable-3 { color: #DDD; }
.cm-s-colorforth span.cm-property {}
.cm-s-colorforth span.cm-operator {}
.cm-s-colorforth span.cm-meta { color: yellow; }
.cm-s-colorforth span.cm-qualifier { color: #FFF700; }
.cm-s-colorforth span.cm-bracket { color: #cc7; }
.cm-s-colorforth span.cm-tag { color: #FFBD40; }
.cm-s-colorforth span.cm-attribute { color: #FFF700; }
.cm-s-colorforth span.cm-error { color: #f00; }
.cm-s-colorforth div.CodeMirror-selected { background: #333d53; }
.cm-s-colorforth span.cm-compilation { background: rgba(255, 255, 255, 0.12); }
.cm-s-colorforth .CodeMirror-activeline-background { background: #253540; }

41
CodeMirror/theme/dracula.css vendored Normal file
View File

@@ -0,0 +1,41 @@
/*
Name: dracula
Author: Michael Kaminsky (http://github.com/mkaminsky11)
Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)
*/
.cm-s-dracula.CodeMirror, .cm-s-dracula .CodeMirror-gutters {
background-color: #282a36 !important;
color: #f8f8f2 !important;
border: none;
}
.cm-s-dracula .CodeMirror-gutters { color: #282a36; }
.cm-s-dracula .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
.cm-s-dracula .CodeMirror-linenumber { color: #6D8A88; }
.cm-s-dracula.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
.cm-s-dracula .CodeMirror-line::selection, .cm-s-dracula .CodeMirror-line > span::selection, .cm-s-dracula .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-dracula .CodeMirror-line::-moz-selection, .cm-s-dracula .CodeMirror-line > span::-moz-selection, .cm-s-dracula .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-dracula span.cm-comment { color: #6272a4; }
.cm-s-dracula span.cm-string, .cm-s-dracula span.cm-string-2 { color: #f1fa8c; }
.cm-s-dracula span.cm-number { color: #bd93f9; }
.cm-s-dracula span.cm-variable { color: #50fa7b; }
.cm-s-dracula span.cm-variable-2 { color: white; }
.cm-s-dracula span.cm-def { color: #ffb86c; }
.cm-s-dracula span.cm-keyword { color: #ff79c6; }
.cm-s-dracula span.cm-operator { color: #ff79c6; }
.cm-s-dracula span.cm-keyword { color: #ff79c6; }
.cm-s-dracula span.cm-atom { color: #bd93f9; }
.cm-s-dracula span.cm-meta { color: #f8f8f2; }
.cm-s-dracula span.cm-tag { color: #ff79c6; }
.cm-s-dracula span.cm-attribute { color: #50fa7b; }
.cm-s-dracula span.cm-qualifier { color: #50fa7b; }
.cm-s-dracula span.cm-property { color: #66d9ef; }
.cm-s-dracula span.cm-builtin { color: #50fa7b; }
.cm-s-dracula span.cm-variable-3 { color: #50fa7b; }
.cm-s-dracula .CodeMirror-activeline-background { background: rgba(255,255,255,0.1); }
.cm-s-dracula .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }

23
CodeMirror/theme/eclipse.css vendored Normal file
View File

@@ -0,0 +1,23 @@
.cm-s-eclipse span.cm-meta { color: #FF1717; }
.cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; }
.cm-s-eclipse span.cm-atom { color: #219; }
.cm-s-eclipse span.cm-number { color: #164; }
.cm-s-eclipse span.cm-def { color: #00f; }
.cm-s-eclipse span.cm-variable { color: black; }
.cm-s-eclipse span.cm-variable-2 { color: #0000C0; }
.cm-s-eclipse span.cm-variable-3 { color: #0000C0; }
.cm-s-eclipse span.cm-property { color: black; }
.cm-s-eclipse span.cm-operator { color: black; }
.cm-s-eclipse span.cm-comment { color: #3F7F5F; }
.cm-s-eclipse span.cm-string { color: #2A00FF; }
.cm-s-eclipse span.cm-string-2 { color: #f50; }
.cm-s-eclipse span.cm-qualifier { color: #555; }
.cm-s-eclipse span.cm-builtin { color: #30a; }
.cm-s-eclipse span.cm-bracket { color: #cc7; }
.cm-s-eclipse span.cm-tag { color: #170; }
.cm-s-eclipse span.cm-attribute { color: #00c; }
.cm-s-eclipse span.cm-link { color: #219; }
.cm-s-eclipse span.cm-error { color: #f00; }
.cm-s-eclipse .CodeMirror-activeline-background { background: #e8f2ff; }
.cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }

13
CodeMirror/theme/elegant.css vendored Normal file
View File

@@ -0,0 +1,13 @@
.cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom { color: #762; }
.cm-s-elegant span.cm-comment { color: #262; font-style: italic; line-height: 1em; }
.cm-s-elegant span.cm-meta { color: #555; font-style: italic; line-height: 1em; }
.cm-s-elegant span.cm-variable { color: black; }
.cm-s-elegant span.cm-variable-2 { color: #b11; }
.cm-s-elegant span.cm-qualifier { color: #555; }
.cm-s-elegant span.cm-keyword { color: #730; }
.cm-s-elegant span.cm-builtin { color: #30a; }
.cm-s-elegant span.cm-link { color: #762; }
.cm-s-elegant span.cm-error { background-color: #fdd; }
.cm-s-elegant .CodeMirror-activeline-background { background: #e8f2ff; }
.cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }

34
CodeMirror/theme/erlang-dark.css vendored Normal file
View File

@@ -0,0 +1,34 @@
.cm-s-erlang-dark.CodeMirror { background: #002240; color: white; }
.cm-s-erlang-dark div.CodeMirror-selected { background: #b36539; }
.cm-s-erlang-dark .CodeMirror-line::selection, .cm-s-erlang-dark .CodeMirror-line > span::selection, .cm-s-erlang-dark .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }
.cm-s-erlang-dark .CodeMirror-line::-moz-selection, .cm-s-erlang-dark .CodeMirror-line > span::-moz-selection, .cm-s-erlang-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(179, 101, 57, .99); }
.cm-s-erlang-dark .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
.cm-s-erlang-dark .CodeMirror-guttermarker { color: white; }
.cm-s-erlang-dark .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
.cm-s-erlang-dark .CodeMirror-linenumber { color: #d0d0d0; }
.cm-s-erlang-dark .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-erlang-dark span.cm-quote { color: #ccc; }
.cm-s-erlang-dark span.cm-atom { color: #f133f1; }
.cm-s-erlang-dark span.cm-attribute { color: #ff80e1; }
.cm-s-erlang-dark span.cm-bracket { color: #ff9d00; }
.cm-s-erlang-dark span.cm-builtin { color: #eaa; }
.cm-s-erlang-dark span.cm-comment { color: #77f; }
.cm-s-erlang-dark span.cm-def { color: #e7a; }
.cm-s-erlang-dark span.cm-keyword { color: #ffee80; }
.cm-s-erlang-dark span.cm-meta { color: #50fefe; }
.cm-s-erlang-dark span.cm-number { color: #ffd0d0; }
.cm-s-erlang-dark span.cm-operator { color: #d55; }
.cm-s-erlang-dark span.cm-property { color: #ccc; }
.cm-s-erlang-dark span.cm-qualifier { color: #ccc; }
.cm-s-erlang-dark span.cm-special { color: #ffbbbb; }
.cm-s-erlang-dark span.cm-string { color: #3ad900; }
.cm-s-erlang-dark span.cm-string-2 { color: #ccc; }
.cm-s-erlang-dark span.cm-tag { color: #9effff; }
.cm-s-erlang-dark span.cm-variable { color: #50fe50; }
.cm-s-erlang-dark span.cm-variable-2 { color: #e0e; }
.cm-s-erlang-dark span.cm-variable-3 { color: #ccc; }
.cm-s-erlang-dark span.cm-error { color: #9d1e15; }
.cm-s-erlang-dark .CodeMirror-activeline-background { background: #013461; }
.cm-s-erlang-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }

34
CodeMirror/theme/hopscotch.css vendored Normal file
View File

@@ -0,0 +1,34 @@
/*
Name: Hopscotch
Author: Jan T. Sott
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
*/
.cm-s-hopscotch.CodeMirror {background: #322931; color: #d5d3d5;}
.cm-s-hopscotch div.CodeMirror-selected {background: #433b42 !important;}
.cm-s-hopscotch .CodeMirror-gutters {background: #322931; border-right: 0px;}
.cm-s-hopscotch .CodeMirror-linenumber {color: #797379;}
.cm-s-hopscotch .CodeMirror-cursor {border-left: 1px solid #989498 !important;}
.cm-s-hopscotch span.cm-comment {color: #b33508;}
.cm-s-hopscotch span.cm-atom {color: #c85e7c;}
.cm-s-hopscotch span.cm-number {color: #c85e7c;}
.cm-s-hopscotch span.cm-property, .cm-s-hopscotch span.cm-attribute {color: #8fc13e;}
.cm-s-hopscotch span.cm-keyword {color: #dd464c;}
.cm-s-hopscotch span.cm-string {color: #fdcc59;}
.cm-s-hopscotch span.cm-variable {color: #8fc13e;}
.cm-s-hopscotch span.cm-variable-2 {color: #1290bf;}
.cm-s-hopscotch span.cm-def {color: #fd8b19;}
.cm-s-hopscotch span.cm-error {background: #dd464c; color: #989498;}
.cm-s-hopscotch span.cm-bracket {color: #d5d3d5;}
.cm-s-hopscotch span.cm-tag {color: #dd464c;}
.cm-s-hopscotch span.cm-link {color: #c85e7c;}
.cm-s-hopscotch .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
.cm-s-hopscotch .CodeMirror-activeline-background { background: #302020; }

40
CodeMirror/theme/icecoder-classic.css vendored Normal file
View File

@@ -0,0 +1,40 @@
/* ICEcoder classic theme by Matt Pass */
.cm-s-icecoder-classic {color: #666; background: #161612}
.cm-s-icecoder-classic span.cm-keyword {color: #eee; font-weight:bold}
.cm-s-icecoder-classic span.cm-atom {color: #8b67cc}
.cm-s-icecoder-classic span.cm-number {color: #080}
.cm-s-icecoder-classic span.cm-def {color: #ca7919}
.cm-s-icecoder-classic span.cm-variable {color: #85b525}
.cm-s-icecoder-classic span.cm-variable-2 {color: #c71e5b}
.cm-s-icecoder-classic span.cm-variable-3 {color: #080}
.cm-s-icecoder-classic span.cm-property {color: #85b525}
.cm-s-icecoder-classic span.cm-operator {color: #080}
.cm-s-icecoder-classic span.cm-comment {color: #444}
.cm-s-icecoder-classic span.cm-string {color: #ccb100}
.cm-s-icecoder-classic span.cm-string-2 {color: #cc6d00}
.cm-s-icecoder-classic span.cm-meta {color: #555}
.cm-s-icecoder-classic span.cm-error {color: #d00}
.cm-s-icecoder-classic span.cm-qualifier {color: #555}
.cm-s-icecoder-classic span.cm-builtin {color: #0052a3}
.cm-s-icecoder-classic span.cm-bracket {color: #cc7}
.cm-s-icecoder-classic span.cm-tag {color: #e8e8e8}
.cm-s-icecoder-classic span.cm-attribute {color: #099}
.cm-s-icecoder-classic span.cm-header {color: #808}
.cm-s-icecoder-classic span.cm-quote {color: #070}
.cm-s-icecoder-classic span.cm-hr {color: #888}
.cm-s-icecoder-classic span.cm-link {color: #cc0}
.cm-s-icecoder-classic .CodeMirror-cursor {border-left: 1px solid white !important}
.cm-s-icecoder-classic .CodeMirror-selected {color: #fff !important; background: #037 !important}
.cm-s-icecoder-classic .CodeMirror-gutters {background: #161612; min-width: 41px; border-right: 0}
.cm-s-icecoder-classic .CodeMirror-linenumber {color: #555; cursor: default}
.cm-s-icecoder-classic .CodeMirror-matchingbracket {border: 1px solid grey; color: black !important}

43
CodeMirror/theme/icecoder.css vendored Normal file
View File

@@ -0,0 +1,43 @@
/*
ICEcoder default theme by Matt Pass, used in code editor available at https://icecoder.net
*/
.cm-s-icecoder { color: #666; background: #1d1d1b; }
.cm-s-icecoder span.cm-keyword { color: #eee; font-weight:bold; } /* off-white 1 */
.cm-s-icecoder span.cm-atom { color: #e1c76e; } /* yellow */
.cm-s-icecoder span.cm-number { color: #6cb5d9; } /* blue */
.cm-s-icecoder span.cm-def { color: #b9ca4a; } /* green */
.cm-s-icecoder span.cm-variable { color: #6cb5d9; } /* blue */
.cm-s-icecoder span.cm-variable-2 { color: #cc1e5c; } /* pink */
.cm-s-icecoder span.cm-variable-3 { color: #f9602c; } /* orange */
.cm-s-icecoder span.cm-property { color: #eee; } /* off-white 1 */
.cm-s-icecoder span.cm-operator { color: #9179bb; } /* purple */
.cm-s-icecoder span.cm-comment { color: #97a3aa; } /* grey-blue */
.cm-s-icecoder span.cm-string { color: #b9ca4a; } /* green */
.cm-s-icecoder span.cm-string-2 { color: #6cb5d9; } /* blue */
.cm-s-icecoder span.cm-meta { color: #555; } /* grey */
.cm-s-icecoder span.cm-qualifier { color: #555; } /* grey */
.cm-s-icecoder span.cm-builtin { color: #214e7b; } /* bright blue */
.cm-s-icecoder span.cm-bracket { color: #cc7; } /* grey-yellow */
.cm-s-icecoder span.cm-tag { color: #e8e8e8; } /* off-white 2 */
.cm-s-icecoder span.cm-attribute { color: #099; } /* teal */
.cm-s-icecoder span.cm-header { color: #6a0d6a; } /* purple-pink */
.cm-s-icecoder span.cm-quote { color: #186718; } /* dark green */
.cm-s-icecoder span.cm-hr { color: #888; } /* mid-grey */
.cm-s-icecoder span.cm-link { color: #e1c76e; } /* yellow */
.cm-s-icecoder span.cm-error { color: #d00; } /* red */
.cm-s-icecoder .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-icecoder div.CodeMirror-selected { color: #fff; background: #037; }
.cm-s-icecoder .CodeMirror-gutters { background: #1d1d1b; min-width: 41px; border-right: 0; }
.cm-s-icecoder .CodeMirror-linenumber { color: #555; cursor: default; }
.cm-s-icecoder .CodeMirror-matchingbracket { color: #fff !important; background: #555 !important; }
.cm-s-icecoder .CodeMirror-activeline-background { background: #000; }

34
CodeMirror/theme/isotope.css vendored Normal file
View File

@@ -0,0 +1,34 @@
/*
Name: Isotope
Author: David Desandro / Jan T. Sott
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
*/
.cm-s-isotope.CodeMirror {background: #000000; color: #e0e0e0;}
.cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}
.cm-s-isotope .CodeMirror-gutters {background: #000000; border-right: 0px;}
.cm-s-isotope .CodeMirror-linenumber {color: #808080;}
.cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}
.cm-s-isotope span.cm-comment {color: #3300ff;}
.cm-s-isotope span.cm-atom {color: #cc00ff;}
.cm-s-isotope span.cm-number {color: #cc00ff;}
.cm-s-isotope span.cm-property, .cm-s-isotope span.cm-attribute {color: #33ff00;}
.cm-s-isotope span.cm-keyword {color: #ff0000;}
.cm-s-isotope span.cm-string {color: #ff0099;}
.cm-s-isotope span.cm-variable {color: #33ff00;}
.cm-s-isotope span.cm-variable-2 {color: #0066ff;}
.cm-s-isotope span.cm-def {color: #ff9900;}
.cm-s-isotope span.cm-error {background: #ff0000; color: #c0c0c0;}
.cm-s-isotope span.cm-bracket {color: #e0e0e0;}
.cm-s-isotope span.cm-tag {color: #ff0000;}
.cm-s-isotope span.cm-link {color: #cc00ff;}
.cm-s-isotope .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
.cm-s-isotope .CodeMirror-activeline-background { background: #202020; }

47
CodeMirror/theme/lesser-dark.css vendored Normal file
View File

@@ -0,0 +1,47 @@
/*
http://lesscss.org/ dark theme
Ported to CodeMirror by Peter Kroon
*/
.cm-s-lesser-dark {
line-height: 1.3em;
}
.cm-s-lesser-dark.CodeMirror { background: #262626; color: #EBEFE7; text-shadow: 0 -1px 1px #262626; }
.cm-s-lesser-dark div.CodeMirror-selected { background: #45443B; } /* 33322B*/
.cm-s-lesser-dark .CodeMirror-line::selection, .cm-s-lesser-dark .CodeMirror-line > span::selection, .cm-s-lesser-dark .CodeMirror-line > span > span::selection { background: rgba(69, 68, 59, .99); }
.cm-s-lesser-dark .CodeMirror-line::-moz-selection, .cm-s-lesser-dark .CodeMirror-line > span::-moz-selection, .cm-s-lesser-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(69, 68, 59, .99); }
.cm-s-lesser-dark .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-lesser-dark pre { padding: 0 8px; }/*editable code holder*/
.cm-s-lesser-dark.CodeMirror span.CodeMirror-matchingbracket { color: #7EFC7E; }/*65FC65*/
.cm-s-lesser-dark .CodeMirror-gutters { background: #262626; border-right:1px solid #aaa; }
.cm-s-lesser-dark .CodeMirror-guttermarker { color: #599eff; }
.cm-s-lesser-dark .CodeMirror-guttermarker-subtle { color: #777; }
.cm-s-lesser-dark .CodeMirror-linenumber { color: #777; }
.cm-s-lesser-dark span.cm-header { color: #a0a; }
.cm-s-lesser-dark span.cm-quote { color: #090; }
.cm-s-lesser-dark span.cm-keyword { color: #599eff; }
.cm-s-lesser-dark span.cm-atom { color: #C2B470; }
.cm-s-lesser-dark span.cm-number { color: #B35E4D; }
.cm-s-lesser-dark span.cm-def { color: white; }
.cm-s-lesser-dark span.cm-variable { color:#D9BF8C; }
.cm-s-lesser-dark span.cm-variable-2 { color: #669199; }
.cm-s-lesser-dark span.cm-variable-3 { color: white; }
.cm-s-lesser-dark span.cm-property { color: #92A75C; }
.cm-s-lesser-dark span.cm-operator { color: #92A75C; }
.cm-s-lesser-dark span.cm-comment { color: #666; }
.cm-s-lesser-dark span.cm-string { color: #BCD279; }
.cm-s-lesser-dark span.cm-string-2 { color: #f50; }
.cm-s-lesser-dark span.cm-meta { color: #738C73; }
.cm-s-lesser-dark span.cm-qualifier { color: #555; }
.cm-s-lesser-dark span.cm-builtin { color: #ff9e59; }
.cm-s-lesser-dark span.cm-bracket { color: #EBEFE7; }
.cm-s-lesser-dark span.cm-tag { color: #669199; }
.cm-s-lesser-dark span.cm-attribute { color: #00c; }
.cm-s-lesser-dark span.cm-hr { color: #999; }
.cm-s-lesser-dark span.cm-link { color: #00c; }
.cm-s-lesser-dark span.cm-error { color: #9d1e15; }
.cm-s-lesser-dark .CodeMirror-activeline-background { background: #3C3A3A; }
.cm-s-lesser-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }

95
CodeMirror/theme/liquibyte.css vendored Normal file
View File

@@ -0,0 +1,95 @@
.cm-s-liquibyte.CodeMirror {
background-color: #000;
color: #fff;
line-height: 1.2em;
font-size: 1em;
}
.cm-s-liquibyte .CodeMirror-focused .cm-matchhighlight {
text-decoration: underline;
text-decoration-color: #0f0;
text-decoration-style: wavy;
}
.cm-s-liquibyte .cm-trailingspace {
text-decoration: line-through;
text-decoration-color: #f00;
text-decoration-style: dotted;
}
.cm-s-liquibyte .cm-tab {
text-decoration: line-through;
text-decoration-color: #404040;
text-decoration-style: dotted;
}
.cm-s-liquibyte .CodeMirror-gutters { background-color: #262626; border-right: 1px solid #505050; padding-right: 0.8em; }
.cm-s-liquibyte .CodeMirror-gutter-elt div { font-size: 1.2em; }
.cm-s-liquibyte .CodeMirror-guttermarker { }
.cm-s-liquibyte .CodeMirror-guttermarker-subtle { }
.cm-s-liquibyte .CodeMirror-linenumber { color: #606060; padding-left: 0; }
.cm-s-liquibyte .CodeMirror-cursor { border-left: 1px solid #eee; }
.cm-s-liquibyte span.cm-comment { color: #008000; }
.cm-s-liquibyte span.cm-def { color: #ffaf40; font-weight: bold; }
.cm-s-liquibyte span.cm-keyword { color: #c080ff; font-weight: bold; }
.cm-s-liquibyte span.cm-builtin { color: #ffaf40; font-weight: bold; }
.cm-s-liquibyte span.cm-variable { color: #5967ff; font-weight: bold; }
.cm-s-liquibyte span.cm-string { color: #ff8000; }
.cm-s-liquibyte span.cm-number { color: #0f0; font-weight: bold; }
.cm-s-liquibyte span.cm-atom { color: #bf3030; font-weight: bold; }
.cm-s-liquibyte span.cm-variable-2 { color: #007f7f; font-weight: bold; }
.cm-s-liquibyte span.cm-variable-3 { color: #c080ff; font-weight: bold; }
.cm-s-liquibyte span.cm-property { color: #999; font-weight: bold; }
.cm-s-liquibyte span.cm-operator { color: #fff; }
.cm-s-liquibyte span.cm-meta { color: #0f0; }
.cm-s-liquibyte span.cm-qualifier { color: #fff700; font-weight: bold; }
.cm-s-liquibyte span.cm-bracket { color: #cc7; }
.cm-s-liquibyte span.cm-tag { color: #ff0; font-weight: bold; }
.cm-s-liquibyte span.cm-attribute { color: #c080ff; font-weight: bold; }
.cm-s-liquibyte span.cm-error { color: #f00; }
.cm-s-liquibyte div.CodeMirror-selected { background-color: rgba(255, 0, 0, 0.25); }
.cm-s-liquibyte span.cm-compilation { background-color: rgba(255, 255, 255, 0.12); }
.cm-s-liquibyte .CodeMirror-activeline-background { background-color: rgba(0, 255, 0, 0.15); }
/* Default styles for common addons */
.cm-s-liquibyte .CodeMirror span.CodeMirror-matchingbracket { color: #0f0; font-weight: bold; }
.cm-s-liquibyte .CodeMirror span.CodeMirror-nonmatchingbracket { color: #f00; font-weight: bold; }
.CodeMirror-matchingtag { background-color: rgba(150, 255, 0, .3); }
/* Scrollbars */
/* Simple */
.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div:hover, div.CodeMirror-simplescroll-vertical div:hover {
background-color: rgba(80, 80, 80, .7);
}
.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div, div.CodeMirror-simplescroll-vertical div {
background-color: rgba(80, 80, 80, .3);
border: 1px solid #404040;
border-radius: 5px;
}
.cm-s-liquibyte div.CodeMirror-simplescroll-vertical div {
border-top: 1px solid #404040;
border-bottom: 1px solid #404040;
}
.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal div {
border-left: 1px solid #404040;
border-right: 1px solid #404040;
}
.cm-s-liquibyte div.CodeMirror-simplescroll-vertical {
background-color: #262626;
}
.cm-s-liquibyte div.CodeMirror-simplescroll-horizontal {
background-color: #262626;
border-top: 1px solid #404040;
}
/* Overlay */
.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div, div.CodeMirror-overlayscroll-vertical div {
background-color: #404040;
border-radius: 5px;
}
.cm-s-liquibyte div.CodeMirror-overlayscroll-vertical div {
border: 1px solid #404040;
}
.cm-s-liquibyte div.CodeMirror-overlayscroll-horizontal div {
border: 1px solid #404040;
}

53
CodeMirror/theme/material.css vendored Normal file
View File

@@ -0,0 +1,53 @@
/*
Name: material
Author: Michael Kaminsky (http://github.com/mkaminsky11)
Original material color scheme by Mattia Astorino (https://github.com/equinusocio/material-theme)
*/
.cm-s-material {
background-color: #263238;
color: rgba(233, 237, 237, 1);
}
.cm-s-material .CodeMirror-gutters {
background: #263238;
color: rgb(83,127,126);
border: none;
}
.cm-s-material .CodeMirror-guttermarker, .cm-s-material .CodeMirror-guttermarker-subtle, .cm-s-material .CodeMirror-linenumber { color: rgb(83,127,126); }
.cm-s-material .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
.cm-s-material div.CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }
.cm-s-material.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
.cm-s-material .CodeMirror-line::selection, .cm-s-material .CodeMirror-line > span::selection, .cm-s-material .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-material .CodeMirror-line::-moz-selection, .cm-s-material .CodeMirror-line > span::-moz-selection, .cm-s-material .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-material .CodeMirror-activeline-background { background: rgba(0, 0, 0, 0); }
.cm-s-material .cm-keyword { color: rgba(199, 146, 234, 1); }
.cm-s-material .cm-operator { color: rgba(233, 237, 237, 1); }
.cm-s-material .cm-variable-2 { color: #80CBC4; }
.cm-s-material .cm-variable-3 { color: #82B1FF; }
.cm-s-material .cm-builtin { color: #DECB6B; }
.cm-s-material .cm-atom { color: #F77669; }
.cm-s-material .cm-number { color: #F77669; }
.cm-s-material .cm-def { color: rgba(233, 237, 237, 1); }
.cm-s-material .cm-string { color: #C3E88D; }
.cm-s-material .cm-string-2 { color: #80CBC4; }
.cm-s-material .cm-comment { color: #546E7A; }
.cm-s-material .cm-variable { color: #82B1FF; }
.cm-s-material .cm-tag { color: #80CBC4; }
.cm-s-material .cm-meta { color: #80CBC4; }
.cm-s-material .cm-attribute { color: #FFCB6B; }
.cm-s-material .cm-property { color: #80CBAE; }
.cm-s-material .cm-qualifier { color: #DECB6B; }
.cm-s-material .cm-variable-3 { color: #DECB6B; }
.cm-s-material .cm-tag { color: rgba(255, 83, 112, 1); }
.cm-s-material .cm-error {
color: rgba(255, 255, 255, 1.0);
background-color: #EC5F67;
}
.cm-s-material .CodeMirror-matchingbracket {
text-decoration: underline;
color: white !important;
}

37
CodeMirror/theme/mbo.css vendored Normal file
View File

@@ -0,0 +1,37 @@
/****************************************************************/
/* Based on mbonaci's Brackets mbo theme */
/* https://github.com/mbonaci/global/blob/master/Mbo.tmTheme */
/* Create your own: http://tmtheme-editor.herokuapp.com */
/****************************************************************/
.cm-s-mbo.CodeMirror { background: #2c2c2c; color: #ffffec; }
.cm-s-mbo div.CodeMirror-selected { background: #716C62; }
.cm-s-mbo .CodeMirror-line::selection, .cm-s-mbo .CodeMirror-line > span::selection, .cm-s-mbo .CodeMirror-line > span > span::selection { background: rgba(113, 108, 98, .99); }
.cm-s-mbo .CodeMirror-line::-moz-selection, .cm-s-mbo .CodeMirror-line > span::-moz-selection, .cm-s-mbo .CodeMirror-line > span > span::-moz-selection { background: rgba(113, 108, 98, .99); }
.cm-s-mbo .CodeMirror-gutters { background: #4e4e4e; border-right: 0px; }
.cm-s-mbo .CodeMirror-guttermarker { color: white; }
.cm-s-mbo .CodeMirror-guttermarker-subtle { color: grey; }
.cm-s-mbo .CodeMirror-linenumber { color: #dadada; }
.cm-s-mbo .CodeMirror-cursor { border-left: 1px solid #ffffec; }
.cm-s-mbo span.cm-comment { color: #95958a; }
.cm-s-mbo span.cm-atom { color: #00a8c6; }
.cm-s-mbo span.cm-number { color: #00a8c6; }
.cm-s-mbo span.cm-property, .cm-s-mbo span.cm-attribute { color: #9ddfe9; }
.cm-s-mbo span.cm-keyword { color: #ffb928; }
.cm-s-mbo span.cm-string { color: #ffcf6c; }
.cm-s-mbo span.cm-string.cm-property { color: #ffffec; }
.cm-s-mbo span.cm-variable { color: #ffffec; }
.cm-s-mbo span.cm-variable-2 { color: #00a8c6; }
.cm-s-mbo span.cm-def { color: #ffffec; }
.cm-s-mbo span.cm-bracket { color: #fffffc; font-weight: bold; }
.cm-s-mbo span.cm-tag { color: #9ddfe9; }
.cm-s-mbo span.cm-link { color: #f54b07; }
.cm-s-mbo span.cm-error { border-bottom: #636363; color: #ffffec; }
.cm-s-mbo span.cm-qualifier { color: #ffffec; }
.cm-s-mbo .CodeMirror-activeline-background { background: #494b41; }
.cm-s-mbo .CodeMirror-matchingbracket { color: #ffb928 !important; }
.cm-s-mbo .CodeMirror-matchingtag { background: rgba(255, 255, 255, .37); }

46
CodeMirror/theme/mdn-like.css vendored Normal file
View File

@@ -0,0 +1,46 @@
/*
MDN-LIKE Theme - Mozilla
Ported to CodeMirror by Peter Kroon <plakroon@gmail.com>
Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues
GitHub: @peterkroon
The mdn-like theme is inspired on the displayed code examples at: https://developer.mozilla.org/en-US/docs/Web/CSS/animation
*/
.cm-s-mdn-like.CodeMirror { color: #999; background-color: #fff; }
.cm-s-mdn-like div.CodeMirror-selected { background: #cfc; }
.cm-s-mdn-like .CodeMirror-line::selection, .cm-s-mdn-like .CodeMirror-line > span::selection, .cm-s-mdn-like .CodeMirror-line > span > span::selection { background: #cfc; }
.cm-s-mdn-like .CodeMirror-line::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span > span::-moz-selection { background: #cfc; }
.cm-s-mdn-like .CodeMirror-gutters { background: #f8f8f8; border-left: 6px solid rgba(0,83,159,0.65); color: #333; }
.cm-s-mdn-like .CodeMirror-linenumber { color: #aaa; padding-left: 8px; }
.cm-s-mdn-like .CodeMirror-cursor { border-left: 2px solid #222; }
.cm-s-mdn-like .cm-keyword { color: #6262FF; }
.cm-s-mdn-like .cm-atom { color: #F90; }
.cm-s-mdn-like .cm-number { color: #ca7841; }
.cm-s-mdn-like .cm-def { color: #8DA6CE; }
.cm-s-mdn-like span.cm-variable-2, .cm-s-mdn-like span.cm-tag { color: #690; }
.cm-s-mdn-like span.cm-variable-3, .cm-s-mdn-like span.cm-def { color: #07a; }
.cm-s-mdn-like .cm-variable { color: #07a; }
.cm-s-mdn-like .cm-property { color: #905; }
.cm-s-mdn-like .cm-qualifier { color: #690; }
.cm-s-mdn-like .cm-operator { color: #cda869; }
.cm-s-mdn-like .cm-comment { color:#777; font-weight:normal; }
.cm-s-mdn-like .cm-string { color:#07a; font-style:italic; }
.cm-s-mdn-like .cm-string-2 { color:#bd6b18; } /*?*/
.cm-s-mdn-like .cm-meta { color: #000; } /*?*/
.cm-s-mdn-like .cm-builtin { color: #9B7536; } /*?*/
.cm-s-mdn-like .cm-tag { color: #997643; }
.cm-s-mdn-like .cm-attribute { color: #d6bb6d; } /*?*/
.cm-s-mdn-like .cm-header { color: #FF6400; }
.cm-s-mdn-like .cm-hr { color: #AEAEAE; }
.cm-s-mdn-like .cm-link { color:#ad9361; font-style:italic; text-decoration:none; }
.cm-s-mdn-like .cm-error { border-bottom: 1px solid red; }
div.cm-s-mdn-like .CodeMirror-activeline-background { background: #efefff; }
div.cm-s-mdn-like span.CodeMirror-matchingbracket { outline:1px solid grey; color: inherit; }
.cm-s-mdn-like.CodeMirror { background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFcAAAAyCAYAAAAp8UeFAAAHvklEQVR42s2b63bcNgyEQZCSHCdt2vd/0tWF7I+Q6XgMXiTtuvU5Pl57ZQKkKHzEAOtF5KeIJBGJ8uvL599FRFREZhFx8DeXv8trn68RuGaC8TRfo3SNp9dlDDHedyLyTUTeRWStXKPZrjtpZxaRw5hPqozRs1N8/enzIiQRWcCgy4MUA0f+XWliDhyL8Lfyvx7ei/Ae3iQFHyw7U/59pQVIMEEPEz0G7XiwdRjzSfC3UTtz9vchIntxvry5iMgfIhJoEflOz2CQr3F5h/HfeFe+GTdLaKcu9L8LTeQb/R/7GgbsfKedyNdoHsN31uRPWrfZ5wsj/NzzRQHuToIdU3ahwnsKPxXCjJITuOsi7XLc7SG/v5GdALs7wf8JjTFiB5+QvTEfRyGOfX3Lrx8wxyQi3sNq46O7QahQiCsRFgqddjBouVEHOKDgXAQHD9gJCr5sMKkEdjwsarG/ww3BMHBU7OBjXnzdyY7SfCxf5/z6ATccrwlKuwC/jhznnPF4CgVzhhVf4xp2EixcBActO75iZ8/fM9zAs2OMzKdslgXWJ9XG8PQoOAMA5fGcsvORgv0doBXyHrCwfLJAOwo71QLNkb8n2Pl6EWiR7OCibtkPaz4Kc/0NNAze2gju3zOwekALDaCFPI5vjPFmgGY5AZqyGEvH1x7QfIb8YtxMnA/b+QQ0aQDAwc6JMFg8CbQZ4qoYEEHbRwNojuK3EHwd7VALSgq+MNDKzfT58T8qdpADrgW0GmgcAS1lhzztJmkAzcPNOQbsWEALBDSlMKUG0Eq4CLAQWvEVQ9WU57gZJwZtgPO3r9oBTQ9WO8TjqXINx8R0EYpiZEUWOF3FxkbJkgU9B2f41YBrIj5ZfsQa0M5kTgiAAqM3ShXLgu8XMqcrQBvJ0CL5pnTsfMB13oB8athpAq2XOQmcGmoACCLydx7nToa23ATaSIY2ichfOdPTGxlasXMLaL0MLZAOwAKIM+y8CmicobGdCcbbK9DzN+yYGVoNNI5iUKTMyYOjPse4A8SM1MmcXgU0toOq1yO/v8FOxlASyc7TgeYaAMBJHcY1CcCwGI/TK4AmDbDyKYBBtFUkRwto8gygiQEaByFgJ00BH2M8JWwQS1nafDXQCidWyOI8AcjDCSjCLk8ngObuAm3JAHAdubAmOaK06V8MNEsKPJOhobSprwQa6gD7DclRQdqcwL4zxqgBrQcabUiBLclRDKAlWp+etPkBaNMA0AKlrHwTdEByZAA4GM+SNluSY6wAzcMNewxmgig5Ks0nkrSpBvSaQHMdKTBAnLojOdYyGpQ254602ZILPdTD1hdlggdIm74jbTp8vDwF5ZYUeLWGJpWsh6XNyXgcYwVoJQTEhhTYkxzZjiU5npU2TaB979TQehlaAVq4kaGpiPwwwLkYUuBbQwocyQTv1tA0+1UFWoJF3iv1oq+qoSk8EQdJmwHkziIF7oOZk14EGitibAdjLYYK78H5vZOhtWpoI0ATGHs0Q8OMb4Ey+2bU2UYztCtA0wFAs7TplGLRVQCcqaFdGSPCeTI1QNIC52iWNzof6Uib7xjEp07mNNoUYmVosVItHrHzRlLgBn9LFyRHaQCtVUMbtTNhoXWiTOO9k/V8BdAc1Oq0ArSQs6/5SU0hckNy9NnXqQY0PGYo5dWJ7nINaN6o958FWin27aBaWRka1r5myvLOAm0j30eBJqCxHLReVclxhxOEN2JfDWjxBtAC7MIH1fVaGdoOp4qJYDgKtKPSFNID2gSnGldrCqkFZ+5UeQXQBIRrSwocbdZYQT/2LwRahBPBXoHrB8nxaGROST62DKUbQOMMzZIC9abkuELfQzQALWTnDNAm8KHWFOJgJ5+SHIvTPcmx1xQyZRhNL5Qci689aXMEaN/uNIWkEwDAvFpOZmgsBaaGnbs1NPa1Jm32gBZAIh1pCtG7TSH4aE0y1uVY4uqoFPisGlpP2rSA5qTecWn5agK6BzSpgAyD+wFaqhnYoSZ1Vwr8CmlTQbrcO3ZaX0NAEyMbYaAlyquFoLKK3SPby9CeVUPThrSJmkCAE0CrKUQadi4DrdSlWhmah0YL9z9vClH59YGbHx1J8VZTyAjQepJjmXwAKTDQI3omc3p1U4gDUf6RfcdYfrUp5ClAi2J3Ba6UOXGo+K+bQrjjssitG2SJzshaLwMtXgRagUNpYYoVkMSBLM+9GGiJZMvduG6DRZ4qc04DMPtQQxOjEtACmhO7K1AbNbQDEggZyJwscFpAGwENhoBeUwh3bWolhe8BTYVKxQEWrSUn/uhcM5KhvUu/+eQu0Lzhi+VrK0PrZZNDQKs9cpYUuFYgMVpD4/NxenJTiMCNqdUEUf1qZWjppLT5qSkkUZbCwkbZMSuVnu80hfSkzRbQeqCZSAh6huR4VtoM2gHAlLf72smuWgE+VV7XpE25Ab2WFDgyhnSuKbs4GuGzCjR+tIoUuMFg3kgcWKLTwRqanJQ2W00hAsenfaApRC42hbCvK1SlE0HtE9BGgneJO+ELamitD1YjjOYnNYVcraGhtKkW0EqVVeDx733I2NH581k1NNxNLG0i0IJ8/NjVaOZ0tYZ2Vtr0Xv7tPV3hkWp9EFkgS/J0vosngTaSoaG06WHi+xObQkaAdlbanP8B2+2l0f90LmUAAAAASUVORK5CYII=); }

45
CodeMirror/theme/midnight.css vendored Normal file
View File

@@ -0,0 +1,45 @@
/* Based on the theme at http://bonsaiden.github.com/JavaScript-Garden */
/*<!--match-->*/
.cm-s-midnight span.CodeMirror-matchhighlight { background: #494949; }
.cm-s-midnight.CodeMirror-focused span.CodeMirror-matchhighlight { background: #314D67 !important; }
/*<!--activeline-->*/
.cm-s-midnight .CodeMirror-activeline-background { background: #253540; }
.cm-s-midnight.CodeMirror {
background: #0F192A;
color: #D1EDFF;
}
.cm-s-midnight.CodeMirror { border-top: 1px solid black; border-bottom: 1px solid black; }
.cm-s-midnight div.CodeMirror-selected { background: #314D67; }
.cm-s-midnight .CodeMirror-line::selection, .cm-s-midnight .CodeMirror-line > span::selection, .cm-s-midnight .CodeMirror-line > span > span::selection { background: rgba(49, 77, 103, .99); }
.cm-s-midnight .CodeMirror-line::-moz-selection, .cm-s-midnight .CodeMirror-line > span::-moz-selection, .cm-s-midnight .CodeMirror-line > span > span::-moz-selection { background: rgba(49, 77, 103, .99); }
.cm-s-midnight .CodeMirror-gutters { background: #0F192A; border-right: 1px solid; }
.cm-s-midnight .CodeMirror-guttermarker { color: white; }
.cm-s-midnight .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
.cm-s-midnight .CodeMirror-linenumber { color: #D0D0D0; }
.cm-s-midnight .CodeMirror-cursor { border-left: 1px solid #F8F8F0; }
.cm-s-midnight span.cm-comment { color: #428BDD; }
.cm-s-midnight span.cm-atom { color: #AE81FF; }
.cm-s-midnight span.cm-number { color: #D1EDFF; }
.cm-s-midnight span.cm-property, .cm-s-midnight span.cm-attribute { color: #A6E22E; }
.cm-s-midnight span.cm-keyword { color: #E83737; }
.cm-s-midnight span.cm-string { color: #1DC116; }
.cm-s-midnight span.cm-variable { color: #FFAA3E; }
.cm-s-midnight span.cm-variable-2 { color: #FFAA3E; }
.cm-s-midnight span.cm-def { color: #4DD; }
.cm-s-midnight span.cm-bracket { color: #D1EDFF; }
.cm-s-midnight span.cm-tag { color: #449; }
.cm-s-midnight span.cm-link { color: #AE81FF; }
.cm-s-midnight span.cm-error { background: #F92672; color: #F8F8F0; }
.cm-s-midnight .CodeMirror-matchingbracket {
text-decoration: underline;
color: white !important;
}

36
CodeMirror/theme/monokai.css vendored Normal file
View File

@@ -0,0 +1,36 @@
/* Based on Sublime Text's Monokai theme */
.cm-s-monokai.CodeMirror { background: #272822; color: #f8f8f2; }
.cm-s-monokai div.CodeMirror-selected { background: #49483E; }
.cm-s-monokai .CodeMirror-line::selection, .cm-s-monokai .CodeMirror-line > span::selection, .cm-s-monokai .CodeMirror-line > span > span::selection { background: rgba(73, 72, 62, .99); }
.cm-s-monokai .CodeMirror-line::-moz-selection, .cm-s-monokai .CodeMirror-line > span::-moz-selection, .cm-s-monokai .CodeMirror-line > span > span::-moz-selection { background: rgba(73, 72, 62, .99); }
.cm-s-monokai .CodeMirror-gutters { background: #272822; border-right: 0px; }
.cm-s-monokai .CodeMirror-guttermarker { color: white; }
.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
.cm-s-monokai .CodeMirror-linenumber { color: #d0d0d0; }
.cm-s-monokai .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
.cm-s-monokai span.cm-comment { color: #75715e; }
.cm-s-monokai span.cm-atom { color: #ae81ff; }
.cm-s-monokai span.cm-number { color: #ae81ff; }
.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute { color: #a6e22e; }
.cm-s-monokai span.cm-keyword { color: #f92672; }
.cm-s-monokai span.cm-builtin { color: #66d9ef; }
.cm-s-monokai span.cm-string { color: #e6db74; }
.cm-s-monokai span.cm-variable { color: #f8f8f2; }
.cm-s-monokai span.cm-variable-2 { color: #9effff; }
.cm-s-monokai span.cm-variable-3 { color: #66d9ef; }
.cm-s-monokai span.cm-def { color: #fd971f; }
.cm-s-monokai span.cm-bracket { color: #f8f8f2; }
.cm-s-monokai span.cm-tag { color: #f92672; }
.cm-s-monokai span.cm-header { color: #ae81ff; }
.cm-s-monokai span.cm-link { color: #ae81ff; }
.cm-s-monokai span.cm-error { background: #f92672; color: #f8f8f0; }
.cm-s-monokai .CodeMirror-activeline-background { background: #373831; }
.cm-s-monokai .CodeMirror-matchingbracket {
text-decoration: underline;
color: white !important;
}

View File

@@ -5,5 +5,8 @@
.cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; }
.cm-s-neat span.cm-variable { color: black; }
.cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; }
.cm-s-neat span.cm-meta {color: #555;}
.cm-s-neat span.cm-meta { color: #555; }
.cm-s-neat span.cm-link { color: #3a3; }
.cm-s-neat .CodeMirror-activeline-background { background: #e8f2ff; }
.cm-s-neat .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }

43
CodeMirror/theme/neo.css vendored Normal file
View File

@@ -0,0 +1,43 @@
/* neo theme for codemirror */
/* Color scheme */
.cm-s-neo.CodeMirror {
background-color:#ffffff;
color:#2e383c;
line-height:1.4375;
}
.cm-s-neo .cm-comment { color:#75787b; }
.cm-s-neo .cm-keyword, .cm-s-neo .cm-property { color:#1d75b3; }
.cm-s-neo .cm-atom,.cm-s-neo .cm-number { color:#75438a; }
.cm-s-neo .cm-node,.cm-s-neo .cm-tag { color:#9c3328; }
.cm-s-neo .cm-string { color:#b35e14; }
.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier { color:#047d65; }
/* Editor styling */
.cm-s-neo pre {
padding:0;
}
.cm-s-neo .CodeMirror-gutters {
border:none;
border-right:10px solid transparent;
background-color:transparent;
}
.cm-s-neo .CodeMirror-linenumber {
padding:0;
color:#e0e2e5;
}
.cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; }
.cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; }
.cm-s-neo .CodeMirror-cursor {
width: auto;
border: 0;
background: rgba(155,157,162,0.37);
z-index: 1;
}

View File

@@ -1,10 +1,14 @@
/* Loosely based on the Midnight Textmate theme */
.cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; }
.cm-s-night div.CodeMirror-selected { background: #447 !important; }
.cm-s-night div.CodeMirror-selected { background: #447; }
.cm-s-night .CodeMirror-line::selection, .cm-s-night .CodeMirror-line > span::selection, .cm-s-night .CodeMirror-line > span > span::selection { background: rgba(68, 68, 119, .99); }
.cm-s-night .CodeMirror-line::-moz-selection, .cm-s-night .CodeMirror-line > span::-moz-selection, .cm-s-night .CodeMirror-line > span > span::-moz-selection { background: rgba(68, 68, 119, .99); }
.cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
.cm-s-night .CodeMirror-guttermarker { color: white; }
.cm-s-night .CodeMirror-guttermarker-subtle { color: #bbb; }
.cm-s-night .CodeMirror-linenumber { color: #f8f8f8; }
.cm-s-night .CodeMirror-cursor { border-left: 1px solid white !important; }
.cm-s-night .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-night span.cm-comment { color: #6900a1; }
.cm-s-night span.cm-atom { color: #845dc4; }
@@ -14,8 +18,11 @@
.cm-s-night span.cm-meta { color: #7678e2; }
.cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; }
.cm-s-night span.cm-variable-3, .cm-s-night span.cm-def { color: white; }
.cm-s-night span.cm-error { color: #9d1e15; }
.cm-s-night span.cm-bracket { color: #8da6ce; }
.cm-s-night span.cm-comment { color: #6900a1; }
.cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; }
.cm-s-night span.cm-link { color: #845dc4; }
.cm-s-night span.cm-error { color: #9d1e15; }
.cm-s-night .CodeMirror-activeline-background { background: #1C005A; }
.cm-s-night .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }

38
CodeMirror/theme/paraiso-dark.css vendored Normal file
View File

@@ -0,0 +1,38 @@
/*
Name: Paraíso (Dark)
Author: Jan T. Sott
Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)
Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
*/
.cm-s-paraiso-dark.CodeMirror { background: #2f1e2e; color: #b9b6b0; }
.cm-s-paraiso-dark div.CodeMirror-selected { background: #41323f; }
.cm-s-paraiso-dark .CodeMirror-line::selection, .cm-s-paraiso-dark .CodeMirror-line > span::selection, .cm-s-paraiso-dark .CodeMirror-line > span > span::selection { background: rgba(65, 50, 63, .99); }
.cm-s-paraiso-dark .CodeMirror-line::-moz-selection, .cm-s-paraiso-dark .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(65, 50, 63, .99); }
.cm-s-paraiso-dark .CodeMirror-gutters { background: #2f1e2e; border-right: 0px; }
.cm-s-paraiso-dark .CodeMirror-guttermarker { color: #ef6155; }
.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle { color: #776e71; }
.cm-s-paraiso-dark .CodeMirror-linenumber { color: #776e71; }
.cm-s-paraiso-dark .CodeMirror-cursor { border-left: 1px solid #8d8687; }
.cm-s-paraiso-dark span.cm-comment { color: #e96ba8; }
.cm-s-paraiso-dark span.cm-atom { color: #815ba4; }
.cm-s-paraiso-dark span.cm-number { color: #815ba4; }
.cm-s-paraiso-dark span.cm-property, .cm-s-paraiso-dark span.cm-attribute { color: #48b685; }
.cm-s-paraiso-dark span.cm-keyword { color: #ef6155; }
.cm-s-paraiso-dark span.cm-string { color: #fec418; }
.cm-s-paraiso-dark span.cm-variable { color: #48b685; }
.cm-s-paraiso-dark span.cm-variable-2 { color: #06b6ef; }
.cm-s-paraiso-dark span.cm-def { color: #f99b15; }
.cm-s-paraiso-dark span.cm-bracket { color: #b9b6b0; }
.cm-s-paraiso-dark span.cm-tag { color: #ef6155; }
.cm-s-paraiso-dark span.cm-link { color: #815ba4; }
.cm-s-paraiso-dark span.cm-error { background: #ef6155; color: #8d8687; }
.cm-s-paraiso-dark .CodeMirror-activeline-background { background: #4D344A; }
.cm-s-paraiso-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }

38
CodeMirror/theme/paraiso-light.css vendored Normal file
View File

@@ -0,0 +1,38 @@
/*
Name: Paraíso (Light)
Author: Jan T. Sott
Color scheme by Jan T. Sott (https://github.com/idleberg/Paraiso-CodeMirror)
Inspired by the art of Rubens LP (http://www.rubenslp.com.br)
*/
.cm-s-paraiso-light.CodeMirror { background: #e7e9db; color: #41323f; }
.cm-s-paraiso-light div.CodeMirror-selected { background: #b9b6b0; }
.cm-s-paraiso-light .CodeMirror-line::selection, .cm-s-paraiso-light .CodeMirror-line > span::selection, .cm-s-paraiso-light .CodeMirror-line > span > span::selection { background: #b9b6b0; }
.cm-s-paraiso-light .CodeMirror-line::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-light .CodeMirror-line > span > span::-moz-selection { background: #b9b6b0; }
.cm-s-paraiso-light .CodeMirror-gutters { background: #e7e9db; border-right: 0px; }
.cm-s-paraiso-light .CodeMirror-guttermarker { color: black; }
.cm-s-paraiso-light .CodeMirror-guttermarker-subtle { color: #8d8687; }
.cm-s-paraiso-light .CodeMirror-linenumber { color: #8d8687; }
.cm-s-paraiso-light .CodeMirror-cursor { border-left: 1px solid #776e71; }
.cm-s-paraiso-light span.cm-comment { color: #e96ba8; }
.cm-s-paraiso-light span.cm-atom { color: #815ba4; }
.cm-s-paraiso-light span.cm-number { color: #815ba4; }
.cm-s-paraiso-light span.cm-property, .cm-s-paraiso-light span.cm-attribute { color: #48b685; }
.cm-s-paraiso-light span.cm-keyword { color: #ef6155; }
.cm-s-paraiso-light span.cm-string { color: #fec418; }
.cm-s-paraiso-light span.cm-variable { color: #48b685; }
.cm-s-paraiso-light span.cm-variable-2 { color: #06b6ef; }
.cm-s-paraiso-light span.cm-def { color: #f99b15; }
.cm-s-paraiso-light span.cm-bracket { color: #41323f; }
.cm-s-paraiso-light span.cm-tag { color: #ef6155; }
.cm-s-paraiso-light span.cm-link { color: #815ba4; }
.cm-s-paraiso-light span.cm-error { background: #ef6155; color: #776e71; }
.cm-s-paraiso-light .CodeMirror-activeline-background { background: #CFD1C4; }
.cm-s-paraiso-light .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }

53
CodeMirror/theme/pastel-on-dark.css vendored Normal file
View File

@@ -0,0 +1,53 @@
/**
* Pastel On Dark theme ported from ACE editor
* @license MIT
* @copyright AtomicPages LLC 2014
* @author Dennis Thompson, AtomicPages LLC
* @version 1.1
* @source https://github.com/atomicpages/codemirror-pastel-on-dark-theme
*/
.cm-s-pastel-on-dark.CodeMirror {
background: #2c2827;
color: #8F938F;
line-height: 1.5;
font-size: 14px;
}
.cm-s-pastel-on-dark div.CodeMirror-selected { background: rgba(221,240,255,0.2); }
.cm-s-pastel-on-dark .CodeMirror-line::selection, .cm-s-pastel-on-dark .CodeMirror-line > span::selection, .cm-s-pastel-on-dark .CodeMirror-line > span > span::selection { background: rgba(221,240,255,0.2); }
.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection, .cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection, .cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(221,240,255,0.2); }
.cm-s-pastel-on-dark .CodeMirror-gutters {
background: #34302f;
border-right: 0px;
padding: 0 3px;
}
.cm-s-pastel-on-dark .CodeMirror-guttermarker { color: white; }
.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle { color: #8F938F; }
.cm-s-pastel-on-dark .CodeMirror-linenumber { color: #8F938F; }
.cm-s-pastel-on-dark .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }
.cm-s-pastel-on-dark span.cm-comment { color: #A6C6FF; }
.cm-s-pastel-on-dark span.cm-atom { color: #DE8E30; }
.cm-s-pastel-on-dark span.cm-number { color: #CCCCCC; }
.cm-s-pastel-on-dark span.cm-property { color: #8F938F; }
.cm-s-pastel-on-dark span.cm-attribute { color: #a6e22e; }
.cm-s-pastel-on-dark span.cm-keyword { color: #AEB2F8; }
.cm-s-pastel-on-dark span.cm-string { color: #66A968; }
.cm-s-pastel-on-dark span.cm-variable { color: #AEB2F8; }
.cm-s-pastel-on-dark span.cm-variable-2 { color: #BEBF55; }
.cm-s-pastel-on-dark span.cm-variable-3 { color: #DE8E30; }
.cm-s-pastel-on-dark span.cm-def { color: #757aD8; }
.cm-s-pastel-on-dark span.cm-bracket { color: #f8f8f2; }
.cm-s-pastel-on-dark span.cm-tag { color: #C1C144; }
.cm-s-pastel-on-dark span.cm-link { color: #ae81ff; }
.cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin { color: #C1C144; }
.cm-s-pastel-on-dark span.cm-error {
background: #757aD8;
color: #f8f8f0;
}
.cm-s-pastel-on-dark .CodeMirror-activeline-background { background: rgba(255, 255, 255, 0.031); }
.cm-s-pastel-on-dark .CodeMirror-matchingbracket {
border: 1px solid rgba(255,255,255,0.25);
color: #8F938F !important;
margin: -1px -1px 0 -1px;
}

34
CodeMirror/theme/railscasts.css vendored Normal file
View File

@@ -0,0 +1,34 @@
/*
Name: Railscasts
Author: Ryan Bates (http://railscasts.com)
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
*/
.cm-s-railscasts.CodeMirror {background: #2b2b2b; color: #f4f1ed;}
.cm-s-railscasts div.CodeMirror-selected {background: #272935 !important;}
.cm-s-railscasts .CodeMirror-gutters {background: #2b2b2b; border-right: 0px;}
.cm-s-railscasts .CodeMirror-linenumber {color: #5a647e;}
.cm-s-railscasts .CodeMirror-cursor {border-left: 1px solid #d4cfc9 !important;}
.cm-s-railscasts span.cm-comment {color: #bc9458;}
.cm-s-railscasts span.cm-atom {color: #b6b3eb;}
.cm-s-railscasts span.cm-number {color: #b6b3eb;}
.cm-s-railscasts span.cm-property, .cm-s-railscasts span.cm-attribute {color: #a5c261;}
.cm-s-railscasts span.cm-keyword {color: #da4939;}
.cm-s-railscasts span.cm-string {color: #ffc66d;}
.cm-s-railscasts span.cm-variable {color: #a5c261;}
.cm-s-railscasts span.cm-variable-2 {color: #6d9cbe;}
.cm-s-railscasts span.cm-def {color: #cc7833;}
.cm-s-railscasts span.cm-error {background: #da4939; color: #d4cfc9;}
.cm-s-railscasts span.cm-bracket {color: #f4f1ed;}
.cm-s-railscasts span.cm-tag {color: #da4939;}
.cm-s-railscasts span.cm-link {color: #b6b3eb;}
.cm-s-railscasts .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
.cm-s-railscasts .CodeMirror-activeline-background { background: #303040; }

View File

@@ -1,10 +1,12 @@
.cm-s-rubyblue { font:13px/1.4em Trebuchet, Verdana, sans-serif; } /* - customized editor font - */
.cm-s-rubyblue.CodeMirror { background: #112435; color: white; }
.cm-s-rubyblue div.CodeMirror-selected { background: #38566F !important; }
.cm-s-rubyblue div.CodeMirror-selected { background: #38566F; }
.cm-s-rubyblue .CodeMirror-line::selection, .cm-s-rubyblue .CodeMirror-line > span::selection, .cm-s-rubyblue .CodeMirror-line > span > span::selection { background: rgba(56, 86, 111, 0.99); }
.cm-s-rubyblue .CodeMirror-line::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span > span::-moz-selection { background: rgba(56, 86, 111, 0.99); }
.cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; }
.cm-s-rubyblue .CodeMirror-guttermarker { color: white; }
.cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; }
.cm-s-rubyblue .CodeMirror-linenumber { color: white; }
.cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white !important; }
.cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; }
.cm-s-rubyblue span.cm-atom { color: #F4C20B; }
@@ -14,8 +16,10 @@
.cm-s-rubyblue span.cm-meta { color: #F0F; }
.cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; }
.cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; }
.cm-s-rubyblue span.cm-error { color: #AF2018; }
.cm-s-rubyblue span.cm-bracket { color: #F0F; }
.cm-s-rubyblue span.cm-link { color: #F4C20B; }
.cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; }
.cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; }
.cm-s-rubyblue span.cm-error { color: #AF2018; }
.cm-s-rubyblue .CodeMirror-activeline-background { background: #173047; }

44
CodeMirror/theme/seti.css vendored Normal file
View File

@@ -0,0 +1,44 @@
/*
Name: seti
Author: Michael Kaminsky (http://github.com/mkaminsky11)
Original seti color scheme by Jesse Weed (https://github.com/jesseweed/seti-syntax)
*/
.cm-s-seti.CodeMirror {
background-color: #151718 !important;
color: #CFD2D1 !important;
border: none;
}
.cm-s-seti .CodeMirror-gutters {
color: #404b53;
background-color: #0E1112;
border: none;
}
.cm-s-seti .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
.cm-s-seti .CodeMirror-linenumber { color: #6D8A88; }
.cm-s-seti.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
.cm-s-seti .CodeMirror-line::selection, .cm-s-seti .CodeMirror-line > span::selection, .cm-s-seti .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-seti .CodeMirror-line::-moz-selection, .cm-s-seti .CodeMirror-line > span::-moz-selection, .cm-s-seti .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-seti span.cm-comment { color: #41535b; }
.cm-s-seti span.cm-string, .cm-s-seti span.cm-string-2 { color: #55b5db; }
.cm-s-seti span.cm-number { color: #cd3f45; }
.cm-s-seti span.cm-variable { color: #55b5db; }
.cm-s-seti span.cm-variable-2 { color: #a074c4; }
.cm-s-seti span.cm-def { color: #55b5db; }
.cm-s-seti span.cm-keyword { color: #ff79c6; }
.cm-s-seti span.cm-operator { color: #9fca56; }
.cm-s-seti span.cm-keyword { color: #e6cd69; }
.cm-s-seti span.cm-atom { color: #cd3f45; }
.cm-s-seti span.cm-meta { color: #55b5db; }
.cm-s-seti span.cm-tag { color: #55b5db; }
.cm-s-seti span.cm-attribute { color: #9fca56; }
.cm-s-seti span.cm-qualifier { color: #9fca56; }
.cm-s-seti span.cm-property { color: #a074c4; }
.cm-s-seti span.cm-variable-3 { color: #9fca56; }
.cm-s-seti span.cm-builtin { color: #9fca56; }
.cm-s-seti .CodeMirror-activeline-background { background: #101213; }
.cm-s-seti .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }

163
CodeMirror/theme/solarized.css vendored Normal file
View File

@@ -0,0 +1,163 @@
/*
Solarized theme for code-mirror
http://ethanschoonover.com/solarized
*/
/*
Solarized color pallet
http://ethanschoonover.com/solarized/img/solarized-palette.png
*/
.solarized.base03 { color: #002b36; }
.solarized.base02 { color: #073642; }
.solarized.base01 { color: #586e75; }
.solarized.base00 { color: #657b83; }
.solarized.base0 { color: #839496; }
.solarized.base1 { color: #93a1a1; }
.solarized.base2 { color: #eee8d5; }
.solarized.base3 { color: #fdf6e3; }
.solarized.solar-yellow { color: #b58900; }
.solarized.solar-orange { color: #cb4b16; }
.solarized.solar-red { color: #dc322f; }
.solarized.solar-magenta { color: #d33682; }
.solarized.solar-violet { color: #6c71c4; }
.solarized.solar-blue { color: #268bd2; }
.solarized.solar-cyan { color: #2aa198; }
.solarized.solar-green { color: #859900; }
/* Color scheme for code-mirror */
.cm-s-solarized {
line-height: 1.45em;
color-profile: sRGB;
rendering-intent: auto;
}
.cm-s-solarized.cm-s-dark {
color: #839496;
background-color: #002b36;
text-shadow: #002b36 0 1px;
}
.cm-s-solarized.cm-s-light {
background-color: #fdf6e3;
color: #657b83;
text-shadow: #eee8d5 0 1px;
}
.cm-s-solarized .CodeMirror-widget {
text-shadow: none;
}
.cm-s-solarized .cm-header { color: #586e75; }
.cm-s-solarized .cm-quote { color: #93a1a1; }
.cm-s-solarized .cm-keyword { color: #cb4b16; }
.cm-s-solarized .cm-atom { color: #d33682; }
.cm-s-solarized .cm-number { color: #d33682; }
.cm-s-solarized .cm-def { color: #2aa198; }
.cm-s-solarized .cm-variable { color: #839496; }
.cm-s-solarized .cm-variable-2 { color: #b58900; }
.cm-s-solarized .cm-variable-3 { color: #6c71c4; }
.cm-s-solarized .cm-property { color: #2aa198; }
.cm-s-solarized .cm-operator { color: #6c71c4; }
.cm-s-solarized .cm-comment { color: #586e75; font-style:italic; }
.cm-s-solarized .cm-string { color: #859900; }
.cm-s-solarized .cm-string-2 { color: #b58900; }
.cm-s-solarized .cm-meta { color: #859900; }
.cm-s-solarized .cm-qualifier { color: #b58900; }
.cm-s-solarized .cm-builtin { color: #d33682; }
.cm-s-solarized .cm-bracket { color: #cb4b16; }
.cm-s-solarized .CodeMirror-matchingbracket { color: #859900; }
.cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; }
.cm-s-solarized .cm-tag { color: #93a1a1; }
.cm-s-solarized .cm-attribute { color: #2aa198; }
.cm-s-solarized .cm-hr {
color: transparent;
border-top: 1px solid #586e75;
display: block;
}
.cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; }
.cm-s-solarized .cm-special { color: #6c71c4; }
.cm-s-solarized .cm-em {
color: #999;
text-decoration: underline;
text-decoration-style: dotted;
}
.cm-s-solarized .cm-strong { color: #eee; }
.cm-s-solarized .cm-error,
.cm-s-solarized .cm-invalidchar {
color: #586e75;
border-bottom: 1px dotted #dc322f;
}
.cm-s-solarized.cm-s-dark div.CodeMirror-selected { background: #073642; }
.cm-s-solarized.cm-s-dark.CodeMirror ::selection { background: rgba(7, 54, 66, 0.99); }
.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection, .cm-s-dark .CodeMirror-line > span::-moz-selection, .cm-s-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(7, 54, 66, 0.99); }
.cm-s-solarized.cm-s-light div.CodeMirror-selected { background: #eee8d5; }
.cm-s-solarized.cm-s-light .CodeMirror-line::selection, .cm-s-light .CodeMirror-line > span::selection, .cm-s-light .CodeMirror-line > span > span::selection { background: #eee8d5; }
.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection, .cm-s-ligh .CodeMirror-line > span::-moz-selection, .cm-s-ligh .CodeMirror-line > span > span::-moz-selection { background: #eee8d5; }
/* Editor styling */
/* Little shadow on the view-port of the buffer view */
.cm-s-solarized.CodeMirror {
-moz-box-shadow: inset 7px 0 12px -6px #000;
-webkit-box-shadow: inset 7px 0 12px -6px #000;
box-shadow: inset 7px 0 12px -6px #000;
}
/* Gutter border and some shadow from it */
.cm-s-solarized .CodeMirror-gutters {
border-right: 1px solid;
}
/* Gutter colors and line number styling based of color scheme (dark / light) */
/* Dark */
.cm-s-solarized.cm-s-dark .CodeMirror-gutters {
background-color: #002b36;
border-color: #00232c;
}
.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {
text-shadow: #021014 0 -1px;
}
/* Light */
.cm-s-solarized.cm-s-light .CodeMirror-gutters {
background-color: #fdf6e3;
border-color: #eee8d5;
}
/* Common */
.cm-s-solarized .CodeMirror-linenumber {
color: #586e75;
padding: 0 5px;
}
.cm-s-solarized .CodeMirror-guttermarker-subtle { color: #586e75; }
.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker { color: #ddd; }
.cm-s-solarized.cm-s-light .CodeMirror-guttermarker { color: #cb4b16; }
.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {
color: #586e75;
}
.cm-s-solarized .CodeMirror-cursor { border-left: 1px solid #819090; }
/*
Active line. Negative margin compensates left padding of the text in the
view-port
*/
.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {
background: rgba(255, 255, 255, 0.10);
}
.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {
background: rgba(0, 0, 0, 0.10);
}

30
CodeMirror/theme/the-matrix.css vendored Normal file
View File

@@ -0,0 +1,30 @@
.cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; }
.cm-s-the-matrix div.CodeMirror-selected { background: #2D2D2D; }
.cm-s-the-matrix .CodeMirror-line::selection, .cm-s-the-matrix .CodeMirror-line > span::selection, .cm-s-the-matrix .CodeMirror-line > span > span::selection { background: rgba(45, 45, 45, 0.99); }
.cm-s-the-matrix .CodeMirror-line::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection { background: rgba(45, 45, 45, 0.99); }
.cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; }
.cm-s-the-matrix .CodeMirror-guttermarker { color: #0f0; }
.cm-s-the-matrix .CodeMirror-guttermarker-subtle { color: white; }
.cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; }
.cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00; }
.cm-s-the-matrix span.cm-keyword { color: #008803; font-weight: bold; }
.cm-s-the-matrix span.cm-atom { color: #3FF; }
.cm-s-the-matrix span.cm-number { color: #FFB94F; }
.cm-s-the-matrix span.cm-def { color: #99C; }
.cm-s-the-matrix span.cm-variable { color: #F6C; }
.cm-s-the-matrix span.cm-variable-2 { color: #C6F; }
.cm-s-the-matrix span.cm-variable-3 { color: #96F; }
.cm-s-the-matrix span.cm-property { color: #62FFA0; }
.cm-s-the-matrix span.cm-operator { color: #999; }
.cm-s-the-matrix span.cm-comment { color: #CCCCCC; }
.cm-s-the-matrix span.cm-string { color: #39C; }
.cm-s-the-matrix span.cm-meta { color: #C9F; }
.cm-s-the-matrix span.cm-qualifier { color: #FFF700; }
.cm-s-the-matrix span.cm-builtin { color: #30a; }
.cm-s-the-matrix span.cm-bracket { color: #cc7; }
.cm-s-the-matrix span.cm-tag { color: #FFBD40; }
.cm-s-the-matrix span.cm-attribute { color: #FFF700; }
.cm-s-the-matrix span.cm-error { color: #FF0000; }
.cm-s-the-matrix .CodeMirror-activeline-background { background: #040; }

View File

@@ -0,0 +1,35 @@
/*
Name: Tomorrow Night - Bright
Author: Chris Kempson
Port done by Gerard Braad <me@gbraad.nl>
*/
.cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }
.cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }
.cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }
.cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }
.cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }
.cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }
.cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }
.cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }
.cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }
.cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }
.cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }
.cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }
.cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }
.cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }
.cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }
.cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }
.cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }
.cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }
.cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }
.cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }
.cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }
.cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }

View File

@@ -0,0 +1,38 @@
/*
Name: Tomorrow Night - Eighties
Author: Chris Kempson
CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
*/
.cm-s-tomorrow-night-eighties.CodeMirror { background: #000000; color: #CCCCCC; }
.cm-s-tomorrow-night-eighties div.CodeMirror-selected { background: #2D2D2D; }
.cm-s-tomorrow-night-eighties .CodeMirror-line::selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span::selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::selection { background: rgba(45, 45, 45, 0.99); }
.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection { background: rgba(45, 45, 45, 0.99); }
.cm-s-tomorrow-night-eighties .CodeMirror-gutters { background: #000000; border-right: 0px; }
.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker { color: #f2777a; }
.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle { color: #777; }
.cm-s-tomorrow-night-eighties .CodeMirror-linenumber { color: #515151; }
.cm-s-tomorrow-night-eighties .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }
.cm-s-tomorrow-night-eighties span.cm-comment { color: #d27b53; }
.cm-s-tomorrow-night-eighties span.cm-atom { color: #a16a94; }
.cm-s-tomorrow-night-eighties span.cm-number { color: #a16a94; }
.cm-s-tomorrow-night-eighties span.cm-property, .cm-s-tomorrow-night-eighties span.cm-attribute { color: #99cc99; }
.cm-s-tomorrow-night-eighties span.cm-keyword { color: #f2777a; }
.cm-s-tomorrow-night-eighties span.cm-string { color: #ffcc66; }
.cm-s-tomorrow-night-eighties span.cm-variable { color: #99cc99; }
.cm-s-tomorrow-night-eighties span.cm-variable-2 { color: #6699cc; }
.cm-s-tomorrow-night-eighties span.cm-def { color: #f99157; }
.cm-s-tomorrow-night-eighties span.cm-bracket { color: #CCCCCC; }
.cm-s-tomorrow-night-eighties span.cm-tag { color: #f2777a; }
.cm-s-tomorrow-night-eighties span.cm-link { color: #a16a94; }
.cm-s-tomorrow-night-eighties span.cm-error { background: #f2777a; color: #6A6A6A; }
.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background { background: #343600; }
.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }

64
CodeMirror/theme/ttcn.css vendored Normal file
View File

@@ -0,0 +1,64 @@
.cm-s-ttcn .cm-quote { color: #090; }
.cm-s-ttcn .cm-negative { color: #d44; }
.cm-s-ttcn .cm-positive { color: #292; }
.cm-s-ttcn .cm-header, .cm-strong { font-weight: bold; }
.cm-s-ttcn .cm-em { font-style: italic; }
.cm-s-ttcn .cm-link { text-decoration: underline; }
.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }
.cm-s-ttcn .cm-header { color: #00f; font-weight: bold; }
.cm-s-ttcn .cm-atom { color: #219; }
.cm-s-ttcn .cm-attribute { color: #00c; }
.cm-s-ttcn .cm-bracket { color: #997; }
.cm-s-ttcn .cm-comment { color: #333333; }
.cm-s-ttcn .cm-def { color: #00f; }
.cm-s-ttcn .cm-em { font-style: italic; }
.cm-s-ttcn .cm-error { color: #f00; }
.cm-s-ttcn .cm-hr { color: #999; }
.cm-s-ttcn .cm-invalidchar { color: #f00; }
.cm-s-ttcn .cm-keyword { font-weight:bold; }
.cm-s-ttcn .cm-link { color: #00c; text-decoration: underline; }
.cm-s-ttcn .cm-meta { color: #555; }
.cm-s-ttcn .cm-negative { color: #d44; }
.cm-s-ttcn .cm-positive { color: #292; }
.cm-s-ttcn .cm-qualifier { color: #555; }
.cm-s-ttcn .cm-strikethrough { text-decoration: line-through; }
.cm-s-ttcn .cm-string { color: #006400; }
.cm-s-ttcn .cm-string-2 { color: #f50; }
.cm-s-ttcn .cm-strong { font-weight: bold; }
.cm-s-ttcn .cm-tag { color: #170; }
.cm-s-ttcn .cm-variable { color: #8B2252; }
.cm-s-ttcn .cm-variable-2 { color: #05a; }
.cm-s-ttcn .cm-variable-3 { color: #085; }
.cm-s-ttcn .cm-invalidchar { color: #f00; }
/* ASN */
.cm-s-ttcn .cm-accessTypes,
.cm-s-ttcn .cm-compareTypes { color: #27408B; }
.cm-s-ttcn .cm-cmipVerbs { color: #8B2252; }
.cm-s-ttcn .cm-modifier { color:#D2691E; }
.cm-s-ttcn .cm-status { color:#8B4545; }
.cm-s-ttcn .cm-storage { color:#A020F0; }
.cm-s-ttcn .cm-tags { color:#006400; }
/* CFG */
.cm-s-ttcn .cm-externalCommands { color: #8B4545; font-weight:bold; }
.cm-s-ttcn .cm-fileNCtrlMaskOptions,
.cm-s-ttcn .cm-sectionTitle { color: #2E8B57; font-weight:bold; }
/* TTCN */
.cm-s-ttcn .cm-booleanConsts,
.cm-s-ttcn .cm-otherConsts,
.cm-s-ttcn .cm-verdictConsts { color: #006400; }
.cm-s-ttcn .cm-configOps,
.cm-s-ttcn .cm-functionOps,
.cm-s-ttcn .cm-portOps,
.cm-s-ttcn .cm-sutOps,
.cm-s-ttcn .cm-timerOps,
.cm-s-ttcn .cm-verdictOps { color: #0000FF; }
.cm-s-ttcn .cm-preprocessor,
.cm-s-ttcn .cm-templateMatch,
.cm-s-ttcn .cm-ttcn3Macros { color: #27408B; }
.cm-s-ttcn .cm-types { color: #A52A2A; font-weight:bold; }
.cm-s-ttcn .cm-visibilityModifiers { font-weight:bold; }

View File

@@ -1,11 +1,15 @@
.cm-s-twilight.CodeMirror { background: #141414; color: #f7f7f7; } /**/
.cm-s-twilight .CodeMirror-selected { background: #323232 !important; } /**/
.cm-s-twilight div.CodeMirror-selected { background: #323232; } /**/
.cm-s-twilight .CodeMirror-line::selection, .cm-s-twilight .CodeMirror-line > span::selection, .cm-s-twilight .CodeMirror-line > span > span::selection { background: rgba(50, 50, 50, 0.99); }
.cm-s-twilight .CodeMirror-line::-moz-selection, .cm-s-twilight .CodeMirror-line > span::-moz-selection, .cm-s-twilight .CodeMirror-line > span > span::-moz-selection { background: rgba(50, 50, 50, 0.99); }
.cm-s-twilight .CodeMirror-gutters { background: #222; border-right: 1px solid #aaa; }
.cm-s-twilight .CodeMirror-guttermarker { color: white; }
.cm-s-twilight .CodeMirror-guttermarker-subtle { color: #aaa; }
.cm-s-twilight .CodeMirror-linenumber { color: #aaa; }
.cm-s-twilight .CodeMirror-cursor { border-left: 1px solid white !important; }
.cm-s-twilight .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-twilight .cm-keyword { color: #f9ee98; } /**/
.cm-s-twilight .cm-keyword { color: #f9ee98; } /**/
.cm-s-twilight .cm-atom { color: #FC0; }
.cm-s-twilight .cm-number { color: #ca7841; } /**/
.cm-s-twilight .cm-def { color: #8DA6CE; }
@@ -14,13 +18,15 @@
.cm-s-twilight .cm-operator { color: #cda869; } /**/
.cm-s-twilight .cm-comment { color:#777; font-style:italic; font-weight:normal; } /**/
.cm-s-twilight .cm-string { color:#8f9d6a; font-style:italic; } /**/
.cm-s-twilight .cm-string-2 { color:#bd6b18 } /*?*/
.cm-s-twilight .cm-string-2 { color:#bd6b18; } /*?*/
.cm-s-twilight .cm-meta { background-color:#141414; color:#f7f7f7; } /*?*/
.cm-s-twilight .cm-error { border-bottom: 1px solid red; }
.cm-s-twilight .cm-builtin { color: #cda869; } /*?*/
.cm-s-twilight .cm-tag { color: #997643; } /**/
.cm-s-twilight .cm-attribute { color: #d6bb6d; } /*?*/
.cm-s-twilight .cm-header { color: #FF6400; }
.cm-s-twilight .cm-hr { color: #AEAEAE; }
.cm-s-twilight .cm-link { color:#ad9361; font-style:italic; text-decoration:none; } /**/
.cm-s-twilight .cm-link { color:#ad9361; font-style:italic; text-decoration:none; } /**/
.cm-s-twilight .cm-error { border-bottom: 1px solid red; }
.cm-s-twilight .CodeMirror-activeline-background { background: #27282E; }
.cm-s-twilight .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }

34
CodeMirror/theme/vibrant-ink.css vendored Normal file
View File

@@ -0,0 +1,34 @@
/* Taken from the popular Visual Studio Vibrant Ink Schema */
.cm-s-vibrant-ink.CodeMirror { background: black; color: white; }
.cm-s-vibrant-ink div.CodeMirror-selected { background: #35493c; }
.cm-s-vibrant-ink .CodeMirror-line::selection, .cm-s-vibrant-ink .CodeMirror-line > span::selection, .cm-s-vibrant-ink .CodeMirror-line > span > span::selection { background: rgba(53, 73, 60, 0.99); }
.cm-s-vibrant-ink .CodeMirror-line::-moz-selection, .cm-s-vibrant-ink .CodeMirror-line > span::-moz-selection, .cm-s-vibrant-ink .CodeMirror-line > span > span::-moz-selection { background: rgba(53, 73, 60, 0.99); }
.cm-s-vibrant-ink .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; }
.cm-s-vibrant-ink .CodeMirror-guttermarker { color: white; }
.cm-s-vibrant-ink .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
.cm-s-vibrant-ink .CodeMirror-linenumber { color: #d0d0d0; }
.cm-s-vibrant-ink .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-vibrant-ink .cm-keyword { color: #CC7832; }
.cm-s-vibrant-ink .cm-atom { color: #FC0; }
.cm-s-vibrant-ink .cm-number { color: #FFEE98; }
.cm-s-vibrant-ink .cm-def { color: #8DA6CE; }
.cm-s-vibrant-ink span.cm-variable-2, .cm-s-vibrant span.cm-tag { color: #FFC66D; }
.cm-s-vibrant-ink span.cm-variable-3, .cm-s-vibrant span.cm-def { color: #FFC66D; }
.cm-s-vibrant-ink .cm-operator { color: #888; }
.cm-s-vibrant-ink .cm-comment { color: gray; font-weight: bold; }
.cm-s-vibrant-ink .cm-string { color: #A5C25C; }
.cm-s-vibrant-ink .cm-string-2 { color: red; }
.cm-s-vibrant-ink .cm-meta { color: #D8FA3C; }
.cm-s-vibrant-ink .cm-builtin { color: #8DA6CE; }
.cm-s-vibrant-ink .cm-tag { color: #8DA6CE; }
.cm-s-vibrant-ink .cm-attribute { color: #8DA6CE; }
.cm-s-vibrant-ink .cm-header { color: #FF6400; }
.cm-s-vibrant-ink .cm-hr { color: #AEAEAE; }
.cm-s-vibrant-ink .cm-link { color: blue; }
.cm-s-vibrant-ink .cm-error { border-bottom: 1px solid red; }
.cm-s-vibrant-ink .CodeMirror-activeline-background { background: #27282E; }
.cm-s-vibrant-ink .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }

53
CodeMirror/theme/xq-dark.css vendored Normal file
View File

@@ -0,0 +1,53 @@
/*
Copyright (C) 2011 by MarkLogic Corporation
Author: Mike Brevoort <mike@brevoort.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
.cm-s-xq-dark.CodeMirror { background: #0a001f; color: #f8f8f8; }
.cm-s-xq-dark div.CodeMirror-selected { background: #27007A; }
.cm-s-xq-dark .CodeMirror-line::selection, .cm-s-xq-dark .CodeMirror-line > span::selection, .cm-s-xq-dark .CodeMirror-line > span > span::selection { background: rgba(39, 0, 122, 0.99); }
.cm-s-xq-dark .CodeMirror-line::-moz-selection, .cm-s-xq-dark .CodeMirror-line > span::-moz-selection, .cm-s-xq-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(39, 0, 122, 0.99); }
.cm-s-xq-dark .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
.cm-s-xq-dark .CodeMirror-guttermarker { color: #FFBD40; }
.cm-s-xq-dark .CodeMirror-guttermarker-subtle { color: #f8f8f8; }
.cm-s-xq-dark .CodeMirror-linenumber { color: #f8f8f8; }
.cm-s-xq-dark .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-xq-dark span.cm-keyword { color: #FFBD40; }
.cm-s-xq-dark span.cm-atom { color: #6C8CD5; }
.cm-s-xq-dark span.cm-number { color: #164; }
.cm-s-xq-dark span.cm-def { color: #FFF; text-decoration:underline; }
.cm-s-xq-dark span.cm-variable { color: #FFF; }
.cm-s-xq-dark span.cm-variable-2 { color: #EEE; }
.cm-s-xq-dark span.cm-variable-3 { color: #DDD; }
.cm-s-xq-dark span.cm-property {}
.cm-s-xq-dark span.cm-operator {}
.cm-s-xq-dark span.cm-comment { color: gray; }
.cm-s-xq-dark span.cm-string { color: #9FEE00; }
.cm-s-xq-dark span.cm-meta { color: yellow; }
.cm-s-xq-dark span.cm-qualifier { color: #FFF700; }
.cm-s-xq-dark span.cm-builtin { color: #30a; }
.cm-s-xq-dark span.cm-bracket { color: #cc7; }
.cm-s-xq-dark span.cm-tag { color: #FFBD40; }
.cm-s-xq-dark span.cm-attribute { color: #FFF700; }
.cm-s-xq-dark span.cm-error { color: #f00; }
.cm-s-xq-dark .CodeMirror-activeline-background { background: #27282E; }
.cm-s-xq-dark .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }

43
CodeMirror/theme/xq-light.css vendored Normal file
View File

@@ -0,0 +1,43 @@
/*
Copyright (C) 2011 by MarkLogic Corporation
Author: Mike Brevoort <mike@brevoort.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
*/
.cm-s-xq-light span.cm-keyword { line-height: 1em; font-weight: bold; color: #5A5CAD; }
.cm-s-xq-light span.cm-atom { color: #6C8CD5; }
.cm-s-xq-light span.cm-number { color: #164; }
.cm-s-xq-light span.cm-def { text-decoration:underline; }
.cm-s-xq-light span.cm-variable { color: black; }
.cm-s-xq-light span.cm-variable-2 { color:black; }
.cm-s-xq-light span.cm-variable-3 { color: black; }
.cm-s-xq-light span.cm-property {}
.cm-s-xq-light span.cm-operator {}
.cm-s-xq-light span.cm-comment { color: #0080FF; font-style: italic; }
.cm-s-xq-light span.cm-string { color: red; }
.cm-s-xq-light span.cm-meta { color: yellow; }
.cm-s-xq-light span.cm-qualifier { color: grey; }
.cm-s-xq-light span.cm-builtin { color: #7EA656; }
.cm-s-xq-light span.cm-bracket { color: #cc7; }
.cm-s-xq-light span.cm-tag { color: #3F7F7F; }
.cm-s-xq-light span.cm-attribute { color: #7F007F; }
.cm-s-xq-light span.cm-error { color: #f00; }
.cm-s-xq-light .CodeMirror-activeline-background { background: #e8f2ff; }
.cm-s-xq-light .CodeMirror-matchingbracket { outline:1px solid grey;color:black !important;background:yellow; }

44
CodeMirror/theme/yeti.css vendored Normal file
View File

@@ -0,0 +1,44 @@
/*
Name: yeti
Author: Michael Kaminsky (http://github.com/mkaminsky11)
Original yeti color scheme by Jesse Weed (https://github.com/jesseweed/yeti-syntax)
*/
.cm-s-yeti.CodeMirror {
background-color: #ECEAE8 !important;
color: #d1c9c0 !important;
border: none;
}
.cm-s-yeti .CodeMirror-gutters {
color: #adaba6;
background-color: #E5E1DB;
border: none;
}
.cm-s-yeti .CodeMirror-cursor { border-left: solid thin #d1c9c0; }
.cm-s-yeti .CodeMirror-linenumber { color: #adaba6; }
.cm-s-yeti.CodeMirror-focused div.CodeMirror-selected { background: #DCD8D2; }
.cm-s-yeti .CodeMirror-line::selection, .cm-s-yeti .CodeMirror-line > span::selection, .cm-s-yeti .CodeMirror-line > span > span::selection { background: #DCD8D2; }
.cm-s-yeti .CodeMirror-line::-moz-selection, .cm-s-yeti .CodeMirror-line > span::-moz-selection, .cm-s-yeti .CodeMirror-line > span > span::-moz-selection { background: #DCD8D2; }
.cm-s-yeti span.cm-comment { color: #d4c8be; }
.cm-s-yeti span.cm-string, .cm-s-yeti span.cm-string-2 { color: #96c0d8; }
.cm-s-yeti span.cm-number { color: #a074c4; }
.cm-s-yeti span.cm-variable { color: #55b5db; }
.cm-s-yeti span.cm-variable-2 { color: #a074c4; }
.cm-s-yeti span.cm-def { color: #55b5db; }
.cm-s-yeti span.cm-operator { color: #9fb96e; }
.cm-s-yeti span.cm-keyword { color: #9fb96e; }
.cm-s-yeti span.cm-atom { color: #a074c4; }
.cm-s-yeti span.cm-meta { color: #96c0d8; }
.cm-s-yeti span.cm-tag { color: #96c0d8; }
.cm-s-yeti span.cm-attribute { color: #9fb96e; }
.cm-s-yeti span.cm-qualifier { color: #96c0d8; }
.cm-s-yeti span.cm-property { color: #a074c4; }
.cm-s-yeti span.cm-builtin { color: #a074c4; }
.cm-s-yeti span.cm-variable-3 { color: #96c0d8; }
.cm-s-yeti .CodeMirror-activeline-background { background: #E7E4E0; }
.cm-s-yeti .CodeMirror-matchingbracket { text-decoration: underline; }

37
CodeMirror/theme/zenburn.css vendored Normal file
View File

@@ -0,0 +1,37 @@
/**
* "
* Using Zenburn color palette from the Emacs Zenburn Theme
* https://github.com/bbatsov/zenburn-emacs/blob/master/zenburn-theme.el
*
* Also using parts of https://github.com/xavi/coderay-lighttable-theme
* "
* From: https://github.com/wisenomad/zenburn-lighttable-theme/blob/master/zenburn.css
*/
.cm-s-zenburn .CodeMirror-gutters { background: #3f3f3f !important; }
.cm-s-zenburn .CodeMirror-foldgutter-open, .CodeMirror-foldgutter-folded { color: #999; }
.cm-s-zenburn .CodeMirror-cursor { border-left: 1px solid white; }
.cm-s-zenburn { background-color: #3f3f3f; color: #dcdccc; }
.cm-s-zenburn span.cm-builtin { color: #dcdccc; font-weight: bold; }
.cm-s-zenburn span.cm-comment { color: #7f9f7f; }
.cm-s-zenburn span.cm-keyword { color: #f0dfaf; font-weight: bold; }
.cm-s-zenburn span.cm-atom { color: #bfebbf; }
.cm-s-zenburn span.cm-def { color: #dcdccc; }
.cm-s-zenburn span.cm-variable { color: #dfaf8f; }
.cm-s-zenburn span.cm-variable-2 { color: #dcdccc; }
.cm-s-zenburn span.cm-string { color: #cc9393; }
.cm-s-zenburn span.cm-string-2 { color: #cc9393; }
.cm-s-zenburn span.cm-number { color: #dcdccc; }
.cm-s-zenburn span.cm-tag { color: #93e0e3; }
.cm-s-zenburn span.cm-property { color: #dfaf8f; }
.cm-s-zenburn span.cm-attribute { color: #dfaf8f; }
.cm-s-zenburn span.cm-qualifier { color: #7cb8bb; }
.cm-s-zenburn span.cm-meta { color: #f0dfaf; }
.cm-s-zenburn span.cm-header { color: #f0efd0; }
.cm-s-zenburn span.cm-operator { color: #f0efd0; }
.cm-s-zenburn span.CodeMirror-matchingbracket { box-sizing: border-box; background: transparent; border-bottom: 1px solid; }
.cm-s-zenburn span.CodeMirror-nonmatchingbracket { border-bottom: 1px solid; background: none; }
.cm-s-zenburn .CodeMirror-activeline { background: #000000; }
.cm-s-zenburn .CodeMirror-activeline-background { background: #000000; }
.cm-s-zenburn div.CodeMirror-selected { background: #545454; }
.cm-s-zenburn .CodeMirror-focused div.CodeMirror-selected { background: #4f4f4f; }

View File

@@ -1,7 +1,7 @@
Copyright (C) 2012 Matt Pass
Website: mattpass.com
Email: matt@mattpass.com
Twitter: @mattpass
Copyright: © 2015 ICEcoder Ltd
Website: icecoder.net
Email: info@icecoder.net
Twitter: @icecoder
#ICEcoder License
##Standard Open Source Initiative MIT License

View File

@@ -1,71 +1,37 @@
#ICEcoder
##Web based IDE for smart web development
##Web IDE / browser code editor awesomeness
Early version of the web based IDE which allows for creation of websites in the web browser. Uses the brilliant CodeMirror for code highlighting & editing, with a slick IDE wrapped around it to make the whole thing work.
ICEcoder is a web IDE / browser based code editor, which allows you to develop websites directly within the web browser. It uses the brilliant CodeMirror for code highlighting & editing, with a slick IDE wrapped around it to make the whole thing work.
<img src="http://icecoder.net/images/icecoder-v1pt4-web-ide.jpg" alt="ICEcoder web IDE">
<img src="https://icecoder.net/images/icecoder-v6-0-beta-browser-code-editor.png" alt="ICEcoder web IDE">
###Features you'd expect
* Context aware code highlighting
* Supports HTML, CSS, LESS, JavaScript, CoffeeScript, PHP & Ruby
* Smart tab key system (selected text indents line)
* File manager
* Find & replace/replace all
* Document tabs indicate current doc & changes made
* Code folding
* Open last files on load
* Web based, access from anywhere
* Free, open source & customisable
###Cool features you wouldn't expect
* Find & replace in current doc, open docs, files & filenames
* Found match & current position counter
* Indicates content type cursor is on
* Account login to keep certain files secure
* Restrict files, ban files and restrict by IP
* Settings to change functionality & editor theme
* Code Assist system
* Displays nest position of text cursor, hover to select, click to set cursor
* Nest structure OK/broken indicator
* Highlight word and press CTRL+I to Google search that
* Adds end tags as you type and in a context aware way
* Can rename open files (whoaah!)
* CTRL+Enter open current webpage in new tab
* CTRL+S+Enter opens a sticky tab to show live edits
* ESC = Comment/Uncomment line, incl partial lines
* Image viewer
* Colour preview block on CSS colours, ie red, #f00 or RGBA(255,0,0,0.5)
* MySQL Database management via Adminer plugin
* Backs up files every 10 mins or on click of backup plugin icon
* Github repo syncing with ICErepo plugin
* Shell terminal
* JS Hint validation as you type
* Emmet snippet typing booster
###Requirements
You can run ICEcoder either online or locally, on Linux, Windows or Mac based platforms. The only requirement is to have PHP 5 available (5.3 recommended). You can have this either as a vanilla installation or via a program such as WAMP or XAMPP (for Windows) or MAMP (for Mac).
###Installation
####Step 1: Clone the repo
####Step 1: Get ICEcoder
Either download the zip or clone from Github using:
```
$ git clone git@github:mattpass/ICEcoder
$ git clone git://github.com/mattpass/ICEcoder
```
####Step 2: Upload the files (Linux or Windows hosting OK)
```
Upload to a new sub-dir URL such as yourdomain.com/_coder
Set public write permissions on the backups folder and lib/config.php file
```
####Step 2: Place in your document root (online or local)
* Put in a new sub-dir URL such as yourdomain.com/ICEcoder or localhost/ICEcoder
* Set write permissions (757 or 775 depending on your system) on the 'backups', 'lib', 'plugins', 'test' and 'tmp' folders
*(Note: A small number of web servers give an internal server error here, if you get this, try 755 instead)*
####Step 3: Start coding
```
Visit the sub-dir URL in your browser and enter a password
Now you're setup, auto-logged in and ready to code!
```
* Visit the sub-dir URL in your browser and enter a password
**Now you're setup, auto-logged in and ready to code!**
Suitable for commercial & non-commercial projects, just let me know if it's useful to you and any cool customisations you make to it. I take no responsibility for anything, your usage is all down to you.
Is fully open source and I'd encourage you to take it, make it your own and customise to your hearts content! :)
It's fully open source and MIT licensed. I'm happy for you to take it, make it your own and customise to your hearts content and/or contribute to this main repo! :)
Plenty of comments included in the code to assist with understanding, customising etc.
Comments, improvements & feedback welcomed!
Comments, improvements & feedback welcomed!

4
backups/index.php Normal file
View File

@@ -0,0 +1,4 @@
<?php
header("Location: ../");
die();
?>

View File

@@ -1 +0,0 @@
Zip It! backups are stored in this folder

View File

@@ -1,86 +1,159 @@
<?php include("lib/settings.php");?>
<?php
include("lib/headers.php");
include("lib/settings.php");
$t = $text['editor'];
?>
<!DOCTYPE html>
<html style="margin: 0" onMouseDown="top.ICEcoder.mouseDown=true" onMouseUp="top.ICEcoder.mouseDown=false" onMouseMove="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'editor');top.ICEcoder.canResizeFilesW()}">
<html style="margin: 0" onMouseDown="top.ICEcoder.mouseDown=true; top.ICEcoder.resetAutoLogoutTimer()" onMouseUp="top.ICEcoder.mouseDown=false; top.ICEcoder.mouseDownInCM=false; top.ICEcoder.resetAutoLogoutTimer(); if (!top.ICEcoder.overCloseLink) {top.ICEcoder.tabDragEnd()}" onMouseMove="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'editor'); top.ICEcoder.resetAutoLogoutTimer(); top.ICEcoder.canResizeFilesW()}" onDrop="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'editor')}">
<head>
<title>ICEcoder v <?php echo $ICEcoder["versionNo"];?> editor</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex, nofollow">
<link rel="stylesheet" href="<?php echo $ICEcoder["codeMirrorDir"]; ?>/lib/codemirror.css">
<link rel="stylesheet" href="<?php echo $ICEcoder["codeMirrorDir"]; ?>/lib/codemirror.css?microtime=<?php echo microtime(true);?>">
<link rel="stylesheet" href="<?php echo $ICEcoder["codeMirrorDir"]; ?>/addon/hint/show-hint.css?microtime=<?php echo microtime(true);?>">
<link rel="stylesheet" href="<?php echo $ICEcoder["codeMirrorDir"]; ?>/addon/lint/lint.css?microtime=<?php echo microtime(true);?>">
<!--
codemirror-compressed.js
incls: codemirror.js
modes: clike, coffeescript, css, javascript, less, php, ruby & xml
utils: foldcode, searchcursor, match-highlighter
incls: codemirror
modes: clike, coffeescript, css, erlang, go, htmlmixed, javascript, julia, lua, markdown, perl, php, python, ruby, sass, sql, xml, yaml
addon: brace-fold, closebrackets, closetag, css-hint, foldcode, foldgutter, html-hint, javascript-hint, javascript-lint, lint, match-highlighter, matchbrackets, runmode, searchcursor, show-hint, simplescrollbars, sql-hint, trailingspace, xml-fold, xml-hint
//-->
<script src="<?php echo $ICEcoder["codeMirrorDir"]; ?>/lib/codemirror-compressed.js"></script>
<script src="<?php echo $ICEcoder["codeMirrorDir"]; ?>/lib/codemirror-compressed.js?microtime=<?php echo microtime(true);?>"></script>
<?php
if (file_exists(dirname(__FILE__)."/plugins/jshint/jshint-2.5.6.min.js")) {
echo '<script src="plugins/jshint/jshint-2.5.6.min.js?microtime='.microtime(true).'></script>';
};?>
<script src="lib/mmd.js?microtime=<?php echo microtime(true);?>"></script>
<link rel="stylesheet" href="<?php echo $ICEcoder["codeMirrorDir"]; ?>/addon/fold/foldgutter.css?microtime=<?php echo microtime(true);?>">
<link rel="stylesheet" href="<?php echo $ICEcoder["codeMirrorDir"]; ?>/addon/scroll/simplescrollbars.css?microtime=<?php echo microtime(true);?>">
<?php
if (file_exists(dirname(__FILE__)."/plugins/emmet/emmet.min.js")) {
echo '<script src="plugins/emmet/emmet.min.js"></script>';
echo '<script src="plugins/emmet/emmet.min.js?microtime='.microtime(true).'"></script>';
};?>
<?php
if (file_exists(dirname(__FILE__)."/plugins/pesticide/pesticide.js")) {
echo '<script src="plugins/pesticide/pesticide.js?microtime='.microtime(true).'"></script>';
};?>
<?php
if (file_exists(dirname(__FILE__)."/plugins/stats.js/stats.min.js")) {
echo '<script src="plugins/stats.js/stats.min.js?microtime='.microtime(true).'"></script>';
};?>
<?php
if (file_exists(dirname(__FILE__)."/plugins/responsive-helper/responsive-helper.js")) {
echo '<script src="plugins/responsive-helper/responsive-helper.js?microtime='.microtime(true).'"></script>';
};?>
<link rel="stylesheet" href="<?php
if ($ICEcoder["theme"]=="default") {echo 'lib/editor.css';} else {echo $ICEcoder["codeMirrorDir"].'/theme/'.$ICEcoder["theme"].'.css';};
$activeLineBG = $ICEcoder["theme"]=="eclipse" || $ICEcoder["theme"]=="elegant" || $ICEcoder["theme"]=="neat" ? "#ccc" : "#000";
echo "?microtime=".microtime(true);
if (array_search($ICEcoder["theme"],array("3024-day","base16-light","eclipse","elegant","mdn-like","neat","neo","paraiso-light","solarized","the-matrix","xq-light")) !== false) {
$activeLineBG = "#ccc";
} elseif (array_search($ICEcoder["theme"],array("3024-night","blackboard","colorforth","liquibyte","night","tomorrow-night-bright","tomorrow-night-eighties","vibrant-ink")) !== false) {
$activeLineBG = "#888";
} else {
$activeLineBG = "#000";
}
?>">
<style type="text/css">
.CodeMirror {position: absolute; top: 0px; width: 100%; font-size: 13px; z-index: 1}
.CodeMirror-scroll {} // was: height: auto; overflow: visible
/* Make sure this next one remains the 1st item, updated with JS */
.CodeMirror {position: absolute; top: 0; width: 100%; font-size: <?php echo $ICEcoder["fontSize"];?>; line-height: 1.3; z-index: 1}
.CodeMirror-scroll {} /* was: height: auto; overflow: visible */
/* Make sure this next one remains the 3rd item, updated with JS */
.cm-s-activeLine {background: <?php echo $activeLineBG;?> !important}
span.CodeMirror-matchhighlight {background: #555}
.CodeMirror-focused span.CodeMirror-matchhighlight {color: #000; background: #555; !important}
/* Make sure this next one remains the 6th item, updated with JS */
.cm-tab:after {position: relative; display: inline-block; width: 0; left: -1.4em; overflow: visible; color: #aaa; content: "<?php if($ICEcoder["visibleTabs"]) {echo '\\21e5';};?>";}
.lint-error {font-family: arial; font-size: 80%; background: #ccc; color: #b00; padding: 3px 5px}
.lint-error-icon {background-color: #b00; color: #fff; font-weight: bold; border-radius: 50%; padding: 0 3px; margin-right: 5px}
.snippetFrame {border: 1px; width: 100%}
.cm-matchhighlight, .CodeMirror-focused .cm-matchhighlight {color: #fff !important; background: #06c !important}
/* Make sure this next one remains the 5th item, updated with JS */
.cm-tab {border-left-width: <?php echo $ICEcoder["visibleTabs"] ? "1px" : "0";?>; margin-left: <?php echo $ICEcoder["visibleTabs"] ? "-1px" : "0";?>; border-left-style: solid; border-left-color: rgba(255,255,255,0.15)}
.cm-trailingspace {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAACCAYAAAB/qH1jAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QUXCToH00Y1UgAAACFJREFUCNdjPMDBUc/AwNDAAAFMTAwMDA0OP34wQgX/AQBYgwYEx4f9lQAAAABJRU5ErkJggg==);
background-position: bottom left;
background-repeat: repeat-x;
}
.CodeMirror-foldmarker {font-family: arial; line-height: .3; color: #b00; cursor: pointer;
text-shadow: #fff 1px 1px 2px, #fff -1px -1px 2px, #fff 1px -1px 2px, #fff -1px 1px 2px;
}
.CodeMirror-foldgutter {display: inline-block; width: 13px}
.CodeMirror-foldgutter-open, .CodeMirror-foldgutter-folded {position: absolute; display: inline-block; width: 13px; height: 13px; font-size: 14px; text-align: center; cursor: pointer}
.CodeMirror-foldgutter-open {background: rgba(255,255,255,0.04); color: #666}
.CodeMirror-foldgutter-open:after {position: relative; top: -2px}
.CodeMirror-foldgutter-folded {background: #800; color: #ddd}
.CodeMirror-foldgutter-folded:after {position: relative; top: -3px}
h2 {color: rgba(0,198,255,0.7)}
.heading {color:#888}
.cm-s-diff {left: 50%}
.diffGreen {background: #0b0 !important; color: #000 !important}
.diffRed {background: #800 !important; color: #fff !important}
.diffGrey {background: #444 !important; color: #fff !important}
.diffGreyLighter {background: #888 !important; color: #1d1d1b !important}
.diffNone {}
.info {font-size: 10px; color: rgba(0,198,255,0.7); cursor: help}
.trialBarContainer {display: inline-block; width: 170px; height: 8px; background: #0b0b0b; margin-bottom: 40px}
.trialBarRemaining {display: inline-block; width: 170px; height: 8px; background: rgba(0,198,255,0.7); box-shadow: 0 0 10px 1px rgba(0,198,255,0.5);
transition: width 0.7s ease-in-out;
}
.trialBarText {margin-top: 6px; color: #888}
.trialBarText a {color: #fff; text-decoration: none}
</style>
<link rel="stylesheet" href="lib/file-types.css?microtime=<?php echo microtime(true);?>">
<link rel="stylesheet" href="lib/file-type-icons.css?microtime=<?php echo microtime(true);?>">
</head>
<body onLoad="top.ICEcoder.updateFileFolderCount()" style="color: #fff; margin: 0" onKeyDown="return top.ICEcoder.interceptKeys('content', event);" onKeyUp="top.ICEcoder.resetKeys(event);">
<body style="color: #fff; margin: 0" onKeyDown="return top.ICEcoder.interceptKeys('content', event);" onKeyUp="top.ICEcoder.resetKeys(event);" onBlur="parent.ICEcoder.resetKeys(event);" onload="if (document.getElementById('trialBarRemaining')) {setTimeout(function(){document.getElementById('trialBarRemaining').style.width = '<?php echo $tRemainingPerc*170;?>px';},150)}">
<div style="margin: 32px 43px; font-family: arial; font-size: 10px; color: #ddd">
<div style="float: left; margin-right: 50px">
<h2 style="color: rgba(0,198,255,0.7)">server</h2>
<span style="color:#888">Server name, OS & IP:</span><br>
<?php echo $_SERVER['SERVER_NAME']." &nbsp;&nbsp ".$_SERVER['SERVER_SOFTWARE']." &nbsp;&nbsp ".$_SERVER['SERVER_ADDR'];?><br><br>
<span style="color:#888">Root:</span><br>
<div style="display: none; margin: 32px 43px 0 43px; padding: 10px; width: 500px; font-family: arial; font-size: 10px; color: #ddd; background: #333" id="dataMessage"></div>
<div style="margin: 20px 43px 32px 43px; font-family: arial; font-size: 10px; color: #ddd">
<div style="float: left; width: 300px; margin-right: 50px">
<h2><?php echo $t['server'];?></h2>
<span class="heading"><?php echo $t['Server name, OS...'];?></span><br>
<?php echo $_SERVER['SERVER_NAME']." &nbsp;&nbsp ".$_SERVER['SERVER_SOFTWARE']." &nbsp;&nbsp ".(isset($_SERVER['SERVER_ADDR'])?$_SERVER['SERVER_ADDR']:"Unknown");?><br><br>
<span class="heading"><?php echo $t['Root'];?></span><br>
<?php echo $docRoot;?><br><br>
<span style="color:#888">ICEcoder root:</span><br>
<?php echo $docRoot.$ICEcoder['root'];?><br><br>
<span style="color:#888">PHP version:</span><br>
<span class="heading"><?php echo $t['ICEcoder root'];?></span><br>
<?php echo $docRoot.$iceRoot;?><br><br>
<span class="heading"><?php echo $t['PHP version'];?></span><br>
<?php echo phpversion();?><br><br>
<span style="color:#888">Date & time:</span><br>
<span id="serverDT"></span><br><br><br>
<span class="heading"><?php echo $t['Date & time'];?></span><br>
<span id="serverDT"></span><br><br>
<h2><?php echo $t['your device'];?></h2>
<span class="heading"><?php echo $t['Browser'];?></span><br>
<?php echo xssClean($_SERVER['HTTP_USER_AGENT'],"html");?><br><br>
<span class="heading"><?php echo $t['Your IP'];?></span><br>
<?php echo $_SERVER['REMOTE_ADDR'];?><br><br>
</div>
<div style="float: left">
<h2 style="color: rgba(0,198,255,0.7)">files</h2>
<span style="color:#888">Last 10 files opened:</span><br>
<?php
// No valid license code - show the trial remaining bar
if (generateHash(strClean($ICEcoder['licenseEmail']),$ICEcoder['licenseCode'])!=$ICEcoder['licenseCode']) {?>
<h2><?php echo $t['trial remaining'];?></h2>
<div class="trialBarContainer"><div class="trialBarRemaining" id="trialBarRemaining"></div><br>
<div class="trialBarText"><?php echo $tDaysRemaining;?> <?php echo $t['days left'];?> - <a href="lib/login.php?get=code&csrf=<?php echo $_SESSION["csrf"];?>" target="_parent">Unlock now</a></div>
</div>
<?php ;}; ?>
<h2><?php echo $t['files'];?></h2>
<span class="heading"><?php echo $t['Last 10 files...'];?></span><br>
<ul class="fileManager" id="last10Files" style="margin-left: 0; line-height: 20px"><?php
$last10FilesArray = explode(",",$ICEcoder["last10Files"]);
for ($i=0;$i<count($last10FilesArray);$i++) {
if ($ICEcoder["last10Files"]=="") {
echo '[none]<br><br>';
echo '<div style="display: inline-block; margin-left: -39px; margin-top: -4px">'.$t['none'].'</div><br><br>';
} else {
echo '<a style="cursor:pointer" onClick="top.ICEcoder.openFile(\''.str_replace("|","/",$last10FilesArray[$i]).'\')">';
$fileFolderName = str_replace("\\","/",$last10FilesArray[$i]);
// Get extension (prefix 'ext-' to prevent invalid classes from extensions that begin with numbers)
$ext = "ext-".pathinfo($docRoot.$iceRoot.$fileFolderName, PATHINFO_EXTENSION);
echo '<li class="pft-file '.strtolower($ext).'" style="margin-left: -21px">';
echo '<a style="cursor:pointer" onClick="top.ICEcoder.openFile(\''.str_replace($docRoot,"",str_replace("|","/",$last10FilesArray[$i])).'\')">';
echo str_replace($docRoot,"",str_replace("|","/",$last10FilesArray[$i]));
echo '</a><br>'.PHP_EOL;
if ($i==count($last10FilesArray)-1) {echo '<br>'.PHP_EOL;};
echo '</a></li>';
if ($i<count($last10FilesArray)-1) {echo PHP_EOL;};
}
}
;?>
<span style="color:#888">File & folder count:</span><br>
<div id="fileFolderCounts"></div><br><br><br>
;?></ul>
</div>
<div style="clear: both">
<h2 style="color: rgba(0,198,255,0.7)">your device</h2>
<span style="color:#888">Browser:</span><br>
<?php echo $_SERVER['HTTP_USER_AGENT'];?><br><br>
<span style="color:#888">Your IP:</span><br>
<?php echo $_SERVER['REMOTE_ADDR'];?>
</div>
<div style="clear: both"></div>
<script>
var nDT=<?php echo time()*1000;?>;
setInterval(function(){
@@ -95,136 +168,156 @@ span.CodeMirror-matchhighlight {background: #555}
}
},1000);
</script>
<?php if(is_dir('test') && !$ICEcoder['demoMode']) {?>
<div style="float: left; margin-right: 50px">
<h2><?php echo $t['test suite'];?></h2>
<span class="heading"><?php echo $t['Run unit tests'];?></span><br>
<a nohref onclick="top.ICEcoder.filesFrame.contentWindow.frames['testControl'].location.href = 'test'" style="color: #fff; cursor: pointer"><?php echo $t['Run unit tests'];?></a><div id="unitTestResults"></div>
</div>
<?php
;};
?>
<div style="float: left">
<h2><?php echo $t['dev mode'];?> <?php echo $ICEcoder['devMode'] ? "on" : "off";?></h2>
<span class="heading"><?php echo $t['Status'];?>:</span><br>
<?php echo $t['Using']?> <?php echo $ICEcoder['devMode'] ? "ice-coder.js" : "ice-coder.min.js";?> <a title="<?php echo $t['You can switch...'];?>" class="info">[?]</a>
</div>
<div style="clear: both"></div>
</div>
<script>
CodeMirror.keyMap.ICEcoder = {
"Tab": function(cm) {CodeMirror.commands[top.ICEcoder.tabsIndent ? "defaultTab" : "insertTab"](cm);},
"Shift-Tab": "indentLess",
"Ctrl-Up": function() {},
"Ctrl-Down": function() {},
fallthrough: ["default"]
};
function createNewCMInstance(num) {
var fileName = top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1];
top.ICEcoder['cM'+num+'waiting'] = "";
top.ICEcoder['cM'+num+'widgets'] = [];
window['cM'+num] = CodeMirror(document.body, {
mode: "application/x-httpd-php",
lineNumbers: true,
lineWrapping: top.ICEcoder.lineWrapping,
indentUnit: top.ICEcoder.tabWidth,
tabSize: top.ICEcoder.tabWidth,
indentWithTabs: true,
electricChars: false,
keyMap: "ICEcoder",
onKeyEvent: function(thisCM, e) {
top.ICEcoder.redoChangedContent(e);
top.ICEcoder.findReplace('find',true,false);
top.ICEcoder.getCaretPosition();
top.ICEcoder.updateCharDisplay();
tok = thisCM.getTokenAt(thisCM.getCursor());
if (tok.string!=">") {lastString=tok.string};
if (e.type=="keyup"&&e.keyCode=="16"&&lastKeyCode=="190") {
canDoEndTag=true;
if (top.ICEcoder.tagString!="script" && top.ICEcoder.tagNestExceptions.indexOf(top.ICEcoder.tagString)>-1) {
canDoEndTag=false;
}
if (
top.ICEcoder.tagString.slice(0,1)=="/"||
top.ICEcoder.tagString.slice(0,1)=="?"||
!top.ICEcoder.codeAssist||
fileName && (fileName.indexOf(".js")>0||fileName.indexOf(".css")>0||fileName.indexOf(".less")>0)
) {canDoEndTag=false}
contentType = top.ICEcoder.caretLocType;
if (canDoEndTag && (contentType!="JavaScript"||(contentType=="JavaScript"&&top.ICEcoder.tagString=="script"))) {
numTabs = top.ICEcoder.htmlTagArray.length;
if (top.ICEcoder.htmlTagArray[0]=="html") {numTabs--};
tabs = "";
for (i=0;i<numTabs-1;i++) {
tabs += "\t";
}
endTag = "</" + top.ICEcoder.tagString + ">";
if (top.ICEcoder.tagString=="script") {endTag="</"+"script>"};
if(top.ICEcoder.tagString=="title"||top.ICEcoder.tagString=="a"||top.ICEcoder.tagString=="li"||top.ICEcoder.tagString=="span"||(top.ICEcoder.tagString.slice(0,1)=="h"&&parseInt(top.ICEcoder.tagString.slice(1,2),10)>=1&&parseInt(top.ICEcoder.tagString.slice(1,2),10)<=7)) {
thisCM.replaceSelection(endTag);
thisCM.setCursor(thisCM.getCursor().line,thisCM.getCursor().ch-top.ICEcoder.tagString.length-3);
} else if(top.ICEcoder.tagString=="html"||top.ICEcoder.tagString=="head") {
thisCM.replaceSelection("\n\n"+endTag);
thisCM.setCursor(thisCM.getCursor().line-1,numTabs);
} else {
thisCM.replaceSelection("\n"+tabs+"\t\n"+tabs+endTag);
thisCM.setCursor(thisCM.getCursor().line-1,numTabs);
}
}
};
lastKeyCode = e.keyCode;
}
});
window['cM'+num].on("cursorActivity", function(thisCM) {
top.ICEcoder.getCaretPosition();
top.ICEcoder.updateCharDisplay();
window['cM'+num].removeLineClass(top.ICEcoder['cMActiveLine'+num], "background");
if(!window['cM'+num].somethingSelected()) {
top.ICEcoder['cMActiveLine'+num] = window['cM'+num].addLineClass(window['cM'+num].getCursor().line, "background","cm-s-activeLine");
}
thisCM.matchHighlight("CodeMirror-matchhighlight");
top.ICEcoder.cssColorPreview();
}
);
window['cM'+num].on("change", function(thisCM, changeObj) {
// If we're not loading the file, it's a change, so update tab
if (!top.ICEcoder.loadingFile) {
top.ICEcoder.changedContent[top.ICEcoder.selectedTab-1] = 1;
top.ICEcoder.redoTabHighlight(top.ICEcoder.selectedTab);
}
top.ICEcoder.getCaretPosition();
top.ICEcoder.dontUpdateNest = false;
top.ICEcoder.updateCharDisplay();
top.ICEcoder.updateNestingIndicator();
if (top.ICEcoder.findMode) {
top.ICEcoder.results.splice(top.ICEcoder.findResult,1);
top.document.getElementById('results').innerHTML = top.ICEcoder.results.length + " results";
top.ICEcoder.findMode = false;
}
if (top.ICEcoder.codeAssist) {
clearTimeout(window['cM'+num+'waiting']);
window['cM'+num+'waiting'] = setTimeout(top.ICEcoder.updateHints, 100);
}
}
);
window['cM'+num].on("scroll", function(thisCM) {
top.ICEcoder.mouseDown=false;
}
);
window['cM'+num].on("gutterClick", function(thisCM, line, gutter, clickEvent) {
["JavaScript","CoffeeScript","PHP","Ruby"].indexOf(top.ICEcoder.caretLocType) > -1
? codeFoldBrace(window['cM'+num], line) : codeFoldTag(window['cM'+num], line);
window['cM'+num].setGutterMarker(line, "CodeMirror-linenumbers", document.createTextNode("+ "+(line+1)));
setTimeout(function() {
window['cM'+num].setGutterMarker(line, "CodeMirror-linenumbers", null);
},1000);
}
);
// Now create the active line for this CodeMirror object
top.ICEcoder['cMActiveLine'+num] = window['cM'+num].addLineClass(0, "background", "cm-s-activeLine");
CodeMirror.keyMap.ICEcoder = {
"Tab": function(cm) {
return cm.somethingSelected()
? (top.ICEcoder.indentAuto
? cm.execCommand("indentAuto") // Honour our own setting indentAuto
: cm.indentSelection("add") // Add indent (this is default handler in CodeMirror)
)
: CodeMirror.Pass // Falls through to default or Emmet plugin
},
"Shift-Tab": "indentLess",
"Ctrl-Space": "autocomplete",
"Ctrl-Up" : false,
"Ctrl-Down" : false,
"Esc" : false,
fallthrough: ["default"]
};
// var top.ICEcoder.foldStyle = '<span style="position: absolute; display: inline-block; width: 13px; height: 13px; left: 0; background-color: #b00; color: #fff; text-align: center; cursor: pointer"><span style="position: relative; left: -1px">+</span></span> %N%';
var codeFoldTag = CodeMirror.newFoldFunction(CodeMirror.tagRangeFinder);
var codeFoldBrace = CodeMirror.newFoldFunction(CodeMirror.braceRangeFinder);
// CodeMirror does not honor indentWithTabs = false properly when handling Tab key
// Marijn said that it is by design, so we need to make a workaround of our own
(function(){
// let's back up original insertTab function which actually puts
var originalInsertTabFunction = CodeMirror.commands.insertTab;
// and replace it with our own, which branches on whether our ICEcoder.indentWithTabs value is true or false
CodeMirror.commands.insertTab = function(cm){
if (top.ICEcoder.indentWithTabs){
// if it is true, then we should still put there, let's use original function
return originalInsertTabFunction(cm);
} else {
// otherwise - let's call another handler, insertSoftTab which will do the job
return cm.execCommand("insertSoftTab");
}
}
}());
function createNewCMInstance(num) {
// Establish the filename for the tab
var fileName = top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1];
// Define our CodeMirror options
var cMOptions = {
mode: "application/x-httpd-php",
lineNumbers: top.ICEcoder.lineNumbers,
gutters: ["CodeMirror-foldgutter","CodeMirror-lint-markers","CodeMirror-linenumbers"],
foldGutter: {gutter: "CodeMirror-foldgutter"},
foldOptions: {minFoldSize: 1},
lineWrapping: top.ICEcoder.lineWrapping,
indentWithTabs: top.ICEcoder.indentWithTabs,
indentUnit: top.ICEcoder.indentSize,
tabSize: top.ICEcoder.indentSize,
matchBrackets: top.ICEcoder.matchBrackets,
electricChars: false,
autoCloseTags: top.ICEcoder.autoCloseTags,
autoCloseBrackets: top.ICEcoder.autoCloseBrackets,
highlightSelectionMatches: true,
scrollbarStyle: 'overlay', // null, 'native', 'simple', 'overlay'
showTrailingSpace: top.ICEcoder.showTrailingSpace,
lint: false,
keyMap: "ICEcoder"
};
// Start editor instances, main and diff
window['cM'+num] = CodeMirror(document.body, cMOptions);
window['cM'+num+'diff'] = CodeMirror(document.body, cMOptions);
// Define actions for those...
// Focus
window['cM'+num] .on("focus", function(thisCM) {top.ICEcoder.cMonFocus(thisCM,'cM'+num)});
window['cM'+num+'diff'] .on("focus", function(thisCM) {top.ICEcoder.cMonFocus(thisCM,'cM'+num+'diff')});
// Blur
window['cM'+num] .on("blur", function(thisCM) {top.ICEcoder.cMonBlur(thisCM,'cM'+num)});
window['cM'+num+'diff'] .on("blur", function(thisCM) {top.ICEcoder.cMonBlur(thisCM,'cM'+num+'diff')});
// Keyup
window['cM'+num] .on("keyup", function(thisCM) {top.ICEcoder.cMonKeyUp(thisCM,'cM'+num)});
window['cM'+num+'diff'] .on("keyup", function(thisCM) {top.ICEcoder.cMonKeyUp(thisCM,'cM'+num+'diff')});
// Cursor activity
window['cM'+num] .on("cursorActivity", function(thisCM) {top.ICEcoder.cMonCursorActivity(thisCM,'cM'+num)});
window['cM'+num+'diff'] .on("cursorActivity", function(thisCM) {top.ICEcoder.cMonCursorActivity(thisCM,'cM'+num+'diff')});
// Before selection change
window['cM'+num] .on("beforeSelectionChange", function(thisCM, changeObj) {top.ICEcoder.prevLine = thisCM.getCursor().line;});
window['cM'+num+'diff'] .on("beforeSelectionChange", function(thisCM, changeObj) {top.ICEcoder.prevLineDiff = thisCM.getCursor().line;});
// Change
window['cM'+num] .on("change", function(thisCM, changeObj) {top.ICEcoder.cMonChange(thisCM,'cM'+num,changeObj,CodeMirror)});
window['cM'+num+'diff'] .on("change", function(thisCM, changeObj) {top.ICEcoder.cMonChange(thisCM,'cM'+num+'diff',changeObj,CodeMirror)});
// Before change
window['cM'+num] .on("beforeChange", function(thisCM, changeObj) {top.ICEcoder.cMonBeforeChange(thisCM,'cM'+num,changeObj,CodeMirror)});
window['cM'+num+'diff'] .on("beforeChange", function(thisCM, changeObj) {top.ICEcoder.cMonBeforeChange(thisCM,'cM'+num+'diff',changeObj,CodeMirror)});
// Scroll
window['cM'+num] .on("scroll", function(thisCM) {top.ICEcoder.cMonScroll(thisCM,'cM'+num)});
window['cM'+num+'diff'] .on("scroll", function(thisCM) {top.ICEcoder.cMonScroll(thisCM,'cM'+num+'diff')});
// Update
window['cM'+num] .on("update", function(thisCM) {top.ICEcoder.cMonUpdate(thisCM,'cM'+num)});
window['cM'+num+'diff'] .on("update", function(thisCM) {top.ICEcoder.cMonUpdate(thisCM,'cM'+num+'diff')});
// Input read
window['cM'+num] .on("inputRead", function(thisCM) {top.ICEcoder.cMonInputRead(thisCM,'cM'+num)});
window['cM'+num+'diff'] .on("inputRead", function(thisCM) {top.ICEcoder.cMonInputRead(thisCM,'cM'+num+'diff')});
// Gutter Click
window['cM'+num] .on("gutterClick", function(thisCM,line,gutter,evt) {top.ICEcoder.cMonGutterClick(thisCM,line,gutter,evt,'cM'+num)});
window['cM'+num+'diff'] .on("gutterClick", function(thisCM,line,gutter,evt) {top.ICEcoder.cMonGutterClick(thisCM,line,gutter,evt,'cM'+num+'diff')});
// Mouse Down
window['cM'+num] .on("mousedown", function(thisCM) {top.ICEcoder.cMonMouseDown(thisCM,'cM'+num)});
window['cM'+num+'diff'] .on("mousedown", function(thisCM) {top.ICEcoder.cMonMouseDown(thisCM,'cM'+num+'diff')});
// Drag Over
window['cM'+num] .on("dragover", function(thisCM) {top.ICEcoder.cMonDragOver(thisCM,event,'cM'+num)});
window['cM'+num+'diff'] .on("dragover", function(thisCM) {top.ICEcoder.cMonDragOver(thisCM,event,'cM'+num+'diff')});
// Render line
window['cM'+num] .on("renderLine", function(thisCM, line, element) {top.ICEcoder.cMonRenderLine(thisCM,'cM'+num,line,element)});
window['cM'+num+'diff'] .on("renderLine", function(thisCM, line, element) {top.ICEcoder.cMonRenderLine(thisCM,'cM'+num+'diff',line,element)});
// Now create the active lines for them
top.ICEcoder['cMActiveLinecM'+num] = window['cM'+num].addLineClass(0, "background", "cm-s-activeLine");
top.ICEcoder['cMActiveLinecM'+num+'diff'] = window['cM'+num+'diff'].addLineClass(0, "background", "cm-s-activeLine");
};
</script>
<iframe name="snippetLoader" src="snippets/snippet-display.php" style="display: none"></iframe>
<div style="position: absolute; display: none; width: 5px; height: 100%; top: 0; right: 0; background: rgba(255,255,255,0.1); overflow: hidden; z-index: 2" id="resultsBar"></div>
<?php include_once("processes/on-editor-load.php"); ?>
</body>
</html>
</html>

49
farbtastic/farbtastic.css Normal file
View File

@@ -0,0 +1,49 @@
.picker {
display: inline-block;
}
.farbtastic {
position: relative;
}
.farbtastic * {
position: absolute;
cursor: crosshair;
}
.farbtastic, .farbtastic .wheel {
width: 195px;
height: 195px;
}
.farbtastic .color, .farbtastic .overlay {
top: 47px;
left: 47px;
width: 101px;
height: 101px;
}
.farbtastic .wheel {
background: url(wheel.png) no-repeat;
width: 195px;
height: 195px;
}
.farbtastic .overlay {
background: url(mask.png) no-repeat;
}
.farbtastic .marker {
width: 17px;
height: 17px;
margin: -8px 0 0 -8px;
overflow: hidden;
background: url(marker.png) no-repeat;
}
.colorValue {
border: 0;
width: 105px;
padding-left: 5px
}
.insertColorValue {
background: #888;
color: #fff;
height: 18px;
width: 60px;
border: 0;
margin-left: 5px;
cursor: pointer
}

253
farbtastic/farbtastic.js Normal file
View File

@@ -0,0 +1,253 @@
/*!
* Farbtastic: NON jQuery color picker plug-in v1.4, based on v1.3u
*
* Licensed under the GPL license:
* http://www.gnu.org/licenses/gpl.html
*/
farbtasticFunc = function (options) {
farbtastic(this, options);
return this;
};
farbtastic = function (container, callback) {
var container = document.getElementById(container);
var callback = document.getElementById(callback);
return container.farbtastic || (container.farbtastic = new _farbtastic(container, callback));
};
_farbtastic = function (container, callback) {
// Store farbtastic object
var fb = this;
// Insert markup
container.innerHTML = '<div class="farbtastic"><div class="color"></div><div class="wheel"></div><div class="overlay"></div><div class="h-marker marker"></div><div class="sl-marker marker"></div></div>';
fb.wheel = document.getElementsByClassName('wheel')[0];
// Dimensions
fb.radius = 84;
fb.square = 100;
fb.width = 194;
/**
* Link to the given element(s) or callback.
*/
fb.linkTo = function (callback) {
// Unbind previous nodes
if (typeof fb.callback == 'object') {
console.log("Doesn't do anything?");
fb.callback.removeEventListener('keyup', fb.updateValue);
}
// Reset color
fb.color = null;
// Bind callback or elements
if (typeof callback == 'function') {
fb.callback = callback;
}
else if (typeof callback == 'object' || typeof callback == 'string') {
fb.callback = callback;
fb.callback.addEventListener('keyup',fb.updateValue);
if (fb.callback.value) {
fb.setColor(fb.callback.value);
}
}
return this;
};
fb.updateValue = function (event) {
if (this.value && this.value != fb.color) {
fb.setColor(this.value);
}
};
/**
* Change color with HTML syntax #123456
*/
fb.setColor = function (color) {
var unpack = fb.unpack(color);
if (fb.color != color && unpack) {
fb.color = color;
fb.rgb = unpack;
fb.hsl = fb.RGBToHSL(fb.rgb);
fb.updateDisplay();
}
return this;
};
/**
* Change color with HSL triplet [0..1, 0..1, 0..1]
*/
fb.setHSL = function (hsl) {
fb.hsl = hsl;
fb.rgb = fb.HSLToRGB(hsl);
fb.color = fb.pack(fb.rgb);
fb.updateDisplay();
return this;
};
/////////////////////////////////////////////////////
/**
* Retrieve the coordinates of the given event relative to the center
* of the widget.
*/
fb.widgetCoords = function (event) {
return { x: (event.pageX - fb.wheel.offsetParent.offsetLeft) - fb.width / 2, y: (event.pageY - fb.wheel.offsetParent.offsetTop) - fb.width / 2 };
};
/**
* Mousedown handler
*/
fb.mousedown = function (event) {
// Capture mouse
if (!document.dragging) {
document.addEventListener('mousemove', fb.mousemove);
document.addEventListener('mouseup', fb.mouseup);
document.dragging = true;
}
// Check which area is being dragged
var pos = fb.widgetCoords(event);
fb.circleDrag = Math.max(Math.abs(pos.x), Math.abs(pos.y)) * 2 > fb.square;
// Process
fb.mousemove(event);
return false;
};
/**
* Mousemove handler
*/
fb.mousemove = function (event) {
// Get coordinates relative to color picker center
var pos = fb.widgetCoords(event);
// Set new HSL parameters
if (fb.circleDrag) {
var hue = Math.atan2(pos.x, -pos.y) / 6.28;
if (hue < 0) hue += 1;
fb.setHSL([hue, fb.hsl[1], fb.hsl[2]]);
}
else {
var sat = Math.max(0, Math.min(1, -(pos.x / fb.square) + .5));
var lum = Math.max(0, Math.min(1, -(pos.y / fb.square) + .5));
fb.setHSL([fb.hsl[0], sat, lum]);
}
return false;
};
/**
* Mouseup handler
*/
fb.mouseup = function () {
// Uncapture mouse
document.removeEventListener('mousemove', fb.mousemove);
document.removeEventListener('mouseup', fb.mouseup);
document.dragging = false;
};
/**
* Update the markers and styles
*/
fb.updateDisplay = function () {
// Markers
var angle = fb.hsl[0] * 6.28;
document.getElementsByClassName('h-marker')[0].style.left = Math.round(Math.sin(angle) * fb.radius + fb.width / 2) + 'px';
document.getElementsByClassName('h-marker')[0].style.top = Math.round(-Math.cos(angle) * fb.radius + fb.width / 2) + 'px';
document.getElementsByClassName('sl-marker')[0].style.left = Math.round(fb.square * (.5 - fb.hsl[1]) + fb.width / 2) + 'px';
document.getElementsByClassName('sl-marker')[0].style.top = Math.round(fb.square * (.5 - fb.hsl[2]) + fb.width / 2) + 'px';
// Saturation/Luminance gradient
document.getElementsByClassName('color')[0].style.backgroundColor = fb.pack(fb.HSLToRGB([fb.hsl[0], 1, 0.5]));
// Linked elements or callback
if (typeof fb.callback == 'object') {
// Set background/foreground color
document.getElementById(fb.callback.id).style.backgroundColor = document.getElementById(fb.callback.id + 'RGB').style.backgroundColor = fb.color;
document.getElementById(fb.callback.id).style.color = document.getElementById(fb.callback.id + 'RGB').style.color = fb.hsl[2] > 0.5 ? '#000' : '#fff';
document.getElementById('colorRGB').value = document.getElementById(fb.callback.id).style.backgroundColor.replace(/\s/g,'');
// Change linked value
if (callback.value && callback.value != fb.color) {
callback.value = fb.color;
}
}
else if (typeof fb.callback == 'function') {
fb.callback.call(fb, fb.color);
}
};
/* Various color utility functions */
fb.pack = function (rgb) {
var r = Math.round(rgb[0] * 255);
var g = Math.round(rgb[1] * 255);
var b = Math.round(rgb[2] * 255);
return '#' + (r < 16 ? '0' : '') + r.toString(16) +
(g < 16 ? '0' : '') + g.toString(16) +
(b < 16 ? '0' : '') + b.toString(16);
};
fb.unpack = function (color) {
if (color.length == 7) {
return [parseInt('0x' + color.substring(1, 3)) / 255,
parseInt('0x' + color.substring(3, 5)) / 255,
parseInt('0x' + color.substring(5, 7)) / 255];
}
else if (color.length == 4) {
return [parseInt('0x' + color.substring(1, 2)) / 15,
parseInt('0x' + color.substring(2, 3)) / 15,
parseInt('0x' + color.substring(3, 4)) / 15];
}
};
fb.HSLToRGB = function (hsl) {
var m1, m2, r, g, b;
var h = hsl[0], s = hsl[1], l = hsl[2];
m2 = (l <= 0.5) ? l * (s + 1) : l + s - l*s;
m1 = l * 2 - m2;
return [this.hueToRGB(m1, m2, h+0.33333),
this.hueToRGB(m1, m2, h),
this.hueToRGB(m1, m2, h-0.33333)];
};
fb.hueToRGB = function (m1, m2, h) {
h = (h < 0) ? h + 1 : ((h > 1) ? h - 1 : h);
if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;
if (h * 2 < 1) return m2;
if (h * 3 < 2) return m1 + (m2 - m1) * (0.66666 - h) * 6;
return m1;
};
fb.RGBToHSL = function (rgb) {
var min, max, delta, h, s, l;
var r = rgb[0], g = rgb[1], b = rgb[2];
min = Math.min(r, Math.min(g, b));
max = Math.max(r, Math.max(g, b));
delta = max - min;
l = (min + max) / 2;
s = 0;
if (l > 0 && l < 1) {
s = delta / (l < 0.5 ? (2 * l) : (2 - 2 * l));
}
h = 0;
if (delta > 0) {
if (max == r && max != g) h += (g - b) / delta;
if (max == g && max != b) h += (2 + (b - r) / delta);
if (max == b && max != r) h += (4 + (r - g) / delta);
h /= 6;
}
return [h, s, l];
};
// Install mousedown handler (the others are set on the document on-demand)
document.getElementsByClassName('farbtastic')[0].onmousedown = fb.mousedown;
// Init color
fb.setColor('#000000');
// Set linked elements/callback
if (callback) {
fb.linkTo(callback);
}
};

BIN
farbtastic/marker.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 B

BIN
farbtastic/mask.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
farbtastic/wheel.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 255 B

After

Width:  |  Height:  |  Size: 1.3 KiB

220
files.php
View File

@@ -1,157 +1,65 @@
<?php include("lib/settings.php");?>
<!DOCTYPE html>
<html onMouseDown="top.ICEcoder.mouseDown=true" onMouseUp="top.ICEcoder.mouseDown=false" onMouseMove="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'files');top.ICEcoder.canResizeFilesW()}" onContextMenu="top.ICEcoder.rightClickedFile=top.ICEcoder.thisFileFolderLink; return top.ICEcoder.showMenu()" onClick="top.ICEcoder.selectFileFolder()">
<head>
<title>ICEcoder v <?php echo $ICEcoder["versionNo"];?> file manager</title>
<meta name="robots" content="noindex, nofollow">
<link rel="stylesheet" type="text/css" href="lib/files.css">
<script src="lib/ice-coder.js" type="text/javascript"></script>
</head>
<body onLoad="top.ICEcoder.fileManager()" onDblClick="top.ICEcoder.openFile()" onKeyDown="return top.ICEcoder.interceptKeys('files', event);" onKeyUp="top.ICEcoder.resetKeys(event);">
<div title="Refresh" onClick="top.ICEcoder.refreshFileManager()" class="refresh"></div>
<?php
// Function to sort given values alphabetically
function alphasort($a, $b) {
return strcasecmp($a->getPathname(), $b->getPathname());
}
// Class to put forward the values for sorting
class SortingIterator implements IteratorAggregate {
private $iterator = null;
public function __construct(Traversable $iterator, $callback) {
$array = iterator_to_array($iterator);
usort($array, $callback);
$this->iterator = new ArrayIterator($array);
}
public function getIterator() {
return $this->iterator;
}
}
class IgnorantRecursiveDirectoryIterator extends RecursiveDirectoryIterator {
function getChildren() {
try {
if (!isset($GLOBALS['ICEcoder']['bannedPaths']) ||
!in_array($this->key(), $GLOBALS['ICEcoder']['bannedPaths'])) {
return parent::getChildren();
} else {
return new RecursiveArrayIterator(array());
}
} catch(UnexpectedValueException $e) {
return new RecursiveArrayIterator(array());
}
}
}
// Get a full list of dirs & files and begin sorting using above class & function
$objectList = new SortingIterator(new RecursiveIteratorIterator(new IgnorantRecursiveDirectoryIterator($docRoot.$iceRoot), RecursiveIteratorIterator::SELF_FIRST), 'alphasort');
// With that done, create arrays for out final ordered list and a temp container of files
$finalArray = $tempArray = array();
// To start, push folders from object into finalArray, files into tempArray
foreach ($objectList as $objectRef) {
$fileFolderName = substr($objectRef->getPathname(), strlen($docRoot.$iceRoot));
$canAdd = true;
for ($i=0;$i<count($_SESSION['bannedFiles']);$i++) {
if(strpos($fileFolderName,$_SESSION['bannedFiles'][$i])!==false) {$canAdd = false;}
}
if ($objectRef->getFilename()!="." && $objectRef->getFilename()!=".." && $fileFolderName[strlen($fileFolderName)-1]!="/" && $canAdd) {
$fileFolderName!="/" && is_dir($docRoot.$iceRoot.$fileFolderName)
? array_push($finalArray,$fileFolderName)
: array_push($tempArray,$fileFolderName);
}
}
// Now push root files onto the end of finalArray and splice from the temp, leaving only files that reside in subdirs
for ($i=0;$i<count($tempArray);$i++) {
if (count(explode("/",$tempArray[$i]))==2) {
array_push($finalArray,$tempArray[$i]);
array_splice($tempArray,$i,1);
$i--;
}
}
// Lastly we push remaining files into the right subdirs in finalArray
for ($i=0;$i<count($tempArray);$i++) {
$insertAt = array_search(dirname($tempArray[$i]),$finalArray)+1;
for ($j=$insertAt;$j<count($finalArray);$j++) {
if ( strcasecmp(dirname($finalArray[$j]), dirname($tempArray[$i]))==0 &&
strcasecmp(basename($finalArray[$j]), basename($tempArray[$i]))<0 ||
(strpos(dirname($finalArray[$j]),dirname($tempArray[$i]))===0 && substr($finalArray[$j],strlen(dirname($tempArray[$i])),1)=="/")) {
$insertAt++;
}
}
array_splice($finalArray, $insertAt, 0, $tempArray[$i]);
}
// Finally, we have our ordered list, so display in a UL
$fileAtts = "";
if ($serverType=="Linux") {
$chmodInfo = substr(sprintf('%o', fileperms($docRoot.$iceRoot)), -3);
$fileAtts = '<span style="color: #888; font-size: 8px" id="|_perms">'.$chmodInfo.'</span>';
}
?>
<ul class="fileManager">
<li class="pft-directory">
<a nohref title="/" onMouseOver="top.ICEcoder.overFileFolder('folder','/')" onMouseOut="top.ICEcoder.overFileFolder('folder','')" style="position: relative; left:-22px">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span id="|">/
<?php echo $iceRoot == "" ? "[ROOT]" : trim($iceRoot,"/");?>
</span>
<?php echo $fileAtts;?>
</a>
</li>
<?php
$lastPath="";
$fileCount=0;
$fileBytes=0;
$dirCount=0;
for ($i=0;$i<count($finalArray);$i++) {
$fileFolderName = str_replace("\\","/",$finalArray[$i]);
$type = is_dir($docRoot.$iceRoot.$fileFolderName) ? "folder" : "file";
$type=="folder" ? $dirCount++ : $fileCount++;
if ($type=="file") {
$fileBytes+=filesize($docRoot.$iceRoot.$fileFolderName);
// Get extension (prefix 'ext-' to prevent invalid classes from extensions that begin with numbers)
$ext = "ext-".pathinfo($docRoot.$iceRoot.$fileFolderName, PATHINFO_EXTENSION);
}
$thisDepth = count(explode("/",$fileFolderName));
$lastDepth = count(explode("/",$lastPath));
if ($thisDepth > $lastDepth) {echo "<ul>\n";}
if ($thisDepth < $lastDepth) {
for ($j=$lastDepth;$j>$thisDepth;$j--) {
echo "</ul>\n";
}
}
if ($serverType=="Linux") {
$chmodInfo = substr(sprintf('%o', fileperms($docRoot.$iceRoot.$fileFolderName)), -3);
$fileAtts = '<span style="color: #888; font-size: 8px" id="'.str_replace($docRoot,"",str_replace("/","|",$fileFolderName)).'_perms">'.$chmodInfo.'</span>';
}
$type == "folder" ? $class = 'pft-directory' : $class = 'pft-file '.strtolower($ext);
echo "<li class=\"".$class."\"><a nohref title=\"$fileFolderName\" onMouseOver=\"top.ICEcoder.overFileFolder('$type','".str_replace($docRoot,"",str_replace("/","|",$fileFolderName))."')\" onMouseOut=\"top.ICEcoder.overFileFolder('$type','')\" style=\"position: relative; left:-22px\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span id=\"".str_replace($docRoot,"",str_replace("/","|",$fileFolderName))."\">".basename($fileFolderName)."</span> ".$fileAtts."</a>\n";
if ($i<count($finalArray)) {echo "</li>\n";}
$lastPath = $fileFolderName;
}
echo "</ul>\n</ul>\n";
// Output the JS vars
echo "<script>\n";
echo "top.ICEcoder.dirCount=";
echo $dirCount ? $dirCount : "0";
echo ";\ntop.ICEcoder.fileCount=";
echo $fileCount ? $fileCount : "0";
echo ";\ntop.ICEcoder.fileBytes=";
echo $fileBytes ? $fileBytes : "0";
echo ";\n</script>";
?>
<iframe name="fileControl" style="display: none"></iframe>
</body>
<?php
include("lib/headers.php");
include("lib/settings.php");
$t = $text['files'];
// Is our dir in the list of GitHub local paths?
$isGitHubRepoDir = in_array($ICEcoder["root"],$ICEcoder['githubLocalPaths']);
?>
<!DOCTYPE html>
<html onMouseDown="top.ICEcoder.mouseDown=true; top.ICEcoder.resetAutoLogoutTimer(); top.ICEcoder.boxSelect(event,'down')" onMouseUp="top.ICEcoder.mouseDown=false; top.ICEcoder.resetAutoLogoutTimer(); top.ICEcoder.mouseDownInCM=false; top.ICEcoder.boxSelect(event,'up'); if (!top.ICEcoder.overCloseLink) {top.ICEcoder.tabDragEnd()}" onMouseMove="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'files'); top.ICEcoder.resetAutoLogoutTimer(); top.ICEcoder.canResizeFilesW(); top.ICEcoder.boxSelect(event,'drag')}" onDrop="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'files')}" onContextMenu="top.ICEcoder.selectFileFolder(event); return top.ICEcoder.showMenu(event)" onClick="if (!top.ICEcoder.fmDraggedBox) {top.ICEcoder.selectFileFolder(event)} else {top.ICEcoder.fmDraggedBox = false}" onDragStart="top.ICEcoder.selectFileFolder(event);" onDragOver="event.preventDefault();event.stopPropagation()">
<head>
<title>ICEcoder v <?php echo $ICEcoder["versionNo"];?> file manager</title>
<meta name="robots" content="noindex, nofollow">
<link rel="stylesheet" type="text/css" href="lib/files.css?microtime=<?php echo microtime(true);?>">
<link rel="stylesheet" type="text/css" href="lib/file-types.css?microtime=<?php echo microtime(true);?>">
<link rel="stylesheet" type="text/css" href="lib/file-type-icons.css?microtime=<?php echo microtime(true);?>">
<script src="lib/ice-coder<?php if (!$ICEcoder['devMode']) {echo '.min';}; echo ".js?microtime=".microtime(true);?>" type="text/javascript"></script>
<!--Updated via settings so must remain 4th stylesheet//-->
<style>
ul.fileManager li a span { font-size: <?php echo $ICEcoder["fontSize"];?>; }
</style>
</head>
<body onFocus="top.ICEcoder.files.style.background='#444'" onBlur="top.ICEcoder.files.style.background='#383838'" onload="top.ICEcoder.showHideGithubNav(top.ICEcoder.githubDiff ? 'show' : 'hide')" onDblClick="top.ICEcoder.openFile()" onKeyDown="return top.ICEcoder.interceptKeys('files', event);" onKeyUp="top.ICEcoder.resetKeys(event);" onBlur="parent.ICEcoder.resetKeys(event);">
<div title="<?php echo $t['Lock'];?>" onClick="top.ICEcoder.lockUnlockNav()" id="fmLock" class="lock"></div>
<div title="<?php echo $t['Refresh'];?>" onClick="top.ICEcoder.refreshFileManager()" class="refresh"></div>
<div title="<?php echo $t['Plugins'];?>" onClick="top.ICEcoder.showHidePlugins(top.get('plugins').style.width != '55px' ? 'show' : 'hide')" class="plugins"></div>
<?php
$_SESSION['githubDiff'] = false;
if ($isGitHubRepoDir) {
$classExtra = !isset($_GET["githubDiff"]) || $_GET["githubDiff"] == "false" ? "Off" : "On";
if ($classExtra == "On") {
$_SESSION['githubDiff'] = true;
// Make sure we are showing the diff pane
echo "<script>top.ICEcoder.setSplitPane('on');</script>";
}
echo '<div title="GitHub" onClick="top.ICEcoder.githubDiffToggle()" class="github'.$classExtra.'"></div>';
}
?>
<ul class="fileManager">
<li class="pft-directory dirOpen"><a nohref title="/" onMouseOver="top.ICEcoder.overFileFolder('folder','/')" onMouseOut="top.ICEcoder.overFileFolder('folder','')" onClick="top.ICEcoder.openCloseDir(this)" style="position: relative; left:-22px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span id="|">/ <?php
echo $iceRoot == "" ? $t['ROOT'] : trim($iceRoot,"/");
$thisPermVal = $serverType=="Linux" ? substr(sprintf('%o', fileperms($docRoot.$iceRoot)), -3) : "";
$permColors = $thisPermVal == 777 ? 'background: #800; color: #eee' : 'color: #888';
?></span> <span style="<?php echo $permColors;?>; font-size: 8px" id="|_perms"><?php echo $thisPermVal;;?></span></a></li><?php
// tree file items generated by the iFrame 'fileControl' below which loads in the items at location=| (ie, the root)
?>
</ul>
<iframe name="fileControl" src="lib/get-branch.php?location=|&csrf=<?php echo $_SESSION['csrf'];?>" style="display: none"></iframe>
<iframe name="testControl" style="display: none"></iframe>
<iframe name="processControl" style="display: none"></iframe>
<iframe name="pingActive" style="display: none"></iframe>
<div class="fmDragBox" id="fmDragBox"></div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
images/checkbox.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
images/checkerboard.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

BIN
images/color-picker.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 158 B

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

BIN
images/nav-alpha.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 999 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 435 B

BIN
images/nav-close-all.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 480 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 B

BIN
images/select-arrow.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

527
index.php
View File

@@ -1,182 +1,347 @@
<?php include("lib/settings.php");
// Check IP permissions
if (!in_array($_SERVER["REMOTE_ADDR"], $_SESSION['allowedIPs']) && !in_array("*", $_SESSION['allowedIPs'])) {
header('Location: /');
};
$updateMsg = '';
// Check for updates
if ($ICEcoder["checkUpdates"]) {
$icv = json_encode(file_get_contents("http://icecoder.net/latest-version.txt"));
$icv = rtrim(ltrim($icv,'"'),'"\\n');
if ($ICEcoder["versionNo"]<$icv) {
$updateMsg = ';top.ICEcoder.message(\'ICEcoder '.$icv.' now released\n\nPlease upgrade\')';
}
}
?>
<!DOCTYPE html>
<html onMouseDown="top.ICEcoder.mouseDown=true" onMouseUp="top.ICEcoder.mouseDown=false" onMouseMove="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'top');top.ICEcoder.canResizeFilesW()}">
<head>
<title>ICEcoder v <?php echo $ICEcoder["versionNo"];?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex, nofollow">
<link rel="stylesheet" type="text/css" href="lib/ice-coder.css">
<link rel="icon" type="image/png" href="favicon.png">
<script>
iceRoot = "<?php echo $ICEcoder["root"]; ?>";
window.onbeforeunload = function() {
if (top.ICEcoder.changedContent.indexOf(1)>-1) {
return "You have some unsaved changes.";
}
}
</script>
<script language="JavaScript" src="lib/ice-coder.js"></script>
<?php
if (file_exists(dirname(__FILE__)."/plugins/jshint/jshint.js")) {
echo '<script src="plugins/jshint/jshint.js"></script>';
}
?>
</head>
<body onLoad="<?php
echo 'top.ICEcoder.previousFiles = [';
if ($ICEcoder["previousFiles"]!="") {
$openFilesArray = explode(",",$ICEcoder["previousFiles"]);
echo "'".implode("','",$openFilesArray)."'";
}
echo "];top.ICEcoder.theme = '";
echo $ICEcoder["theme"]=="default" ? 'icecoder' : $ICEcoder["theme"];
echo "'";
echo ';top.ICEcoder.tabsIndent = ';
echo $ICEcoder["tabsIndent"] ? 'true' : 'false';
echo ';top.ICEcoder.openLastFiles = ';
echo $ICEcoder["openLastFiles"] ? 'true' : 'false';
echo ';top.ICEcoder.lineWrapping = ';
echo $ICEcoder["lineWrapping"] ? 'true' : 'false';
echo ';top.ICEcoder.tabWidth = ';
echo $ICEcoder["tabWidth"];
?>;ICEcoder.init()<?php echo $updateMsg.$onLoadExtras;?>" onResize="ICEcoder.setLayout()" onKeyDown="return ICEcoder.interceptKeys('coder',event);" onKeyUp="parent.ICEcoder.resetKeys(event);">
<div id="blackMask" class="blackMask" onClick="ICEcoder.showHide('hide',this)" onContextMenu="return false">
<div class="popupVCenter">
<div class="popup" id="mediaContainer"></div>
</div>
</div>
<div id="loadingMask" class="blackMask" style="visibility: visible" onContextMenu="return false">
<span class="progressBar" id="progressBar" style="-webkit-animation:fullexpand 10s ease-out; -moz-animation:fullexpand 10s ease-out"></span>
<div class="popupVCenter">
<div class="popup">
<div class="circleOutside"></div>
<div class="circleInside"></div>
&nbsp;&nbsp;&nbsp;working...
</div>
</div>
</div>
<div id="fileMenu" class="fileMenu" onMouseOver="ICEcoder.changeFilesW('expand')" onMouseOut="ICEcoder.changeFilesW('contract');this.style.display='none'" onContextMenu="return false">
<span id="folderMenuItems">
<a href="javascript:top.ICEcoder.newFile()" onMouseOver="ICEcoder.showFileMenu()">New File</a>
<a href="javascript:top.ICEcoder.newFolder()" onMouseOver="ICEcoder.showFileMenu()">New Folder</a>
<a href="javascript:top.ICEcoder.pasteFile(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()">Paste</a>
</span>
<a href="javascript:top.ICEcoder.deleteFile(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()">Delete</a>
<span id="singleFileMenuItems">
<a href="javascript:top.ICEcoder.copyFile(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()">Copy</a>
<a href="javascript:top.ICEcoder.renameFile(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()">Rename</a>
<a href="javascript:window.open(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()">View Webpage</a>
</span>
<a href="javascript:top.ICEcoder.zipIt(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()">Zip It!</a>
<a href="javascript:top.ICEcoder.propertiesScreen(top.ICEcoder.rightClickedFile)" onMouseOver="ICEcoder.showFileMenu()">Properties</a>
</div>
<div id="header" class="header" onContextMenu="return false">
<div class="plugins" id="pluginsContainer">
<?php echo $pluginsDisplay; ?>
</div>
<div class="version">v <?php echo $ICEcoder["versionNo"];?></div><img src="images/full-screen.gif" id="screenMode" class="screenModeIcon" onClick="top.ICEcoder.fullScreenSwitcher()">
<img src="images/ice-coder.png" class="logo" onClick="ICEcoder.helpScreen()" onContextMenu="ICEcoder.settingsScreen()">
</div>
<div id="files" class="files" onMouseOver="ICEcoder.changeFilesW('expand')" onMouseOut="ICEcoder.changeFilesW('contract'); top.document.getElementById('fileMenu').style.display='none';">
<div class="account" id="account">
<div class="accountOptions">
<div title="Save" onClick="ICEcoder.fMIcon('save')" id="fMSave" class="save"></div>
<div title="Open" onClick="ICEcoder.fMIcon('open')" id="fMOpen" class="open"></div>
<div title="New File" onClick="ICEcoder.fMIcon('newFile')" id="fMNewFile" class="newFile"></div>
<div title="New Folder" onClick="ICEcoder.fMIcon('newFolder')" id="fMNewFolder" class="newFolder"></div>
<div title="Delete" onClick="ICEcoder.fMIcon('delete')" id="fMDelete" class="delete"></div>
<div title="Rename" onClick="ICEcoder.fMIcon('rename')" id="fMRename" class="rename"></div>
<div title="View" onClick="ICEcoder.fMIcon('view')" id="fMView" class="view"></div>
<div title="Lock" onClick="ICEcoder.lockUnlockNav()" id="fmLock" class="lock"></div>
</div>
</div>
<iframe id="filesFrame" class="frame" name="ff" src="files.php" style="opacity: 0" onLoad="this.style.opacity='1';this.contentWindow.onscroll=function(){top.ICEcoder.mouseDown=false}"></iframe>
<div class="serverMessage" id="serverMessage"></div>
</div>
<div id="editor" class="editor">
<div id="tabsBar" class="tabsBar" onContextMenu="return false">
<?php
for ($i=1;$i<=100;$i++) {
echo '<div id="tab'.$i.'" class="tab" draggable="true" onClick="ICEcoder.canSwitchTabs ? ICEcoder.switchTab('.$i.') : ICEcoder.canSwitchTabs=true; thisColor=\'#000\'" onMouseOver="thisColor=this.style.color;this.style.color=\'#000\'" onMouseOut="this.style.color=thisColor"></div>';
}
?><div class="newTab" onClick="ICEcoder.newTab()"><img src="images/nav-new.png"></div>
</div>
<div id="findBar" class="findBar" onContextMenu="return false">
<form name="findAndReplace" onSubmit="ICEcoder.findReplace('findReplace',false,true);return false">
<div class="findReplace">
<div class="findText">Find</div>
<input type="text" name="find" value="" id="find" class="textbox find" onKeyUp="ICEcoder.findReplace('find',true,false)">
<select name="connector" onChange="ICEcoder.findReplaceOptions()">
<option>in</option>
<option>and</option>
</select>
<div class="replaceText" id="rText" style="display: none">
<select name="replaceAction" class="replaceAction">
<option>replace</option>
<option>replace all</option>
</select>
with
</div>
<input type="text" name="replace" value="" id="replace" class="textbox replace" style="display: none">
<div class="targetText" id="rTarget" style="display: none">in</div>
<select name="target" onChange="ICEcoder.updateResultsDisplay(this.value=='this document' ? 'show' : 'hide')">
<option>this document</option>
<option>open documents</option>
<option>all files</option>
<option>all filenames</option>
</select>
<input type="submit" name="submit" value="&gt;&gt;" class="submit">
<div class="results" id="results"></div>
</div>
</form>
<form onSubmit="return ICEcoder.goToLine()">
<div class="codeAssist"><input type="checkbox" name="codeAssist" id="codeAssist" checked onClick="top.ICEcoder.codeAssistToggle()">Code Assist</div>
<div class="goLine">Go to Line<input type="text" name="goToLine" value="" id="goToLineNo" class="textbox goToLine">
</form>
</div>
<iframe name="contentFrame" id="content" src="editor.php" class="code"></iframe>
</div>
<div class="footer" id="footer" onContextMenu="return false">
<div class="nesting" id="nestValid">Nesting OK</div>
<div class="nestLoc">cursor nest location</div>
<div class="nestDisplay" id="nestDisplay"></div>
<div class="charDisplay" id="charDisplay"><span id="char"></span></div>
</div>
<script>
ICEcoder.initAliases();
ICEcoder.setLayout('dontSetEditor');
</script>
</body>
<?php
include("lib/headers.php");
include("lib/settings.php");
$t = $text['index'];
$updateMsg = '';
// Check for updates
if ($ICEcoder["checkUpdates"]) {
$icv_url = "https://icecoder.net/latest-version?thisVersion=".$ICEcoder["versionNo"];
$icvData = getData($icv_url,'curl',false,5);
if ($icvData == "no data") {
$icvData = "1.0\nICEcoder version placeholder";
}
$icvInfo = explode("\n", $icvData);
$icv = $icvInfo[0];
$icvI = str_replace('"','\\\'',$icvInfo[1]);
$thisV = $ICEcoder["versionNo"];
if (strpos($thisV,"beta")>-1 && !strpos($icv,"beta") && str_replace(" beta","",$thisV) == $icv) {$thisV-=0.1;};
if ($thisV<$icv) {
$updateMsg = ";top.ICEcoder.dataMessage('<b>".$t['UPDATE INFO'].":</b> ICEcoder v ".$icv." ".$t['now available'].". (".$t['Your version is']." v ".$ICEcoder["versionNo"].").<br><br><a onclick=\\'top.ICEcoder.update()\\' style=\\'color:#fff; background: #b00; padding: 5px; text-decoration: none; cursor: pointer\\'>".$t['Update now']."</a><br><br>".$icvI."');";
}
}
$isMac = strpos($_SERVER['HTTP_USER_AGENT'], "Macintosh")>-1 ? true : false;
?>
<!DOCTYPE html>
<html onMouseDown="top.ICEcoder.mouseDown=true; top.ICEcoder.resetAutoLogoutTimer();" onMouseUp="top.ICEcoder.mouseDown=false; top.ICEcoder.resetAutoLogoutTimer(); top.ICEcoder.mouseDownInCM=false; if (!top.ICEcoder.overCloseLink) {top.ICEcoder.tabDragEnd()}" onMouseMove="if(top.ICEcoder) {top.ICEcoder.getMouseXY(event,'top'); top.ICEcoder.resetAutoLogoutTimer(); top.ICEcoder.canResizeFilesW()}" onMouseWheel="top.ICEcoder.resetAutoLogoutTimer(); if (top.ICEcoder.getcMInstance() && !top.ICEcoder.getcMInstance().hasFocus() && !top.ICEcoder.getcMdiffInstance().hasFocus()) {event.wheelDelta > 0 ? top.ICEcoder.nextTab() : top.ICEcoder.previousTab();}">
<head>
<title>ICEcoder v <?php echo $ICEcoder["versionNo"];?></title>
<!--Updated via settings so must remain 1st stylesheet//-->
<style>
#tabsBar.tabsBar .tab { font-size: <?php echo $ICEcoder["fontSize"];?>; }
</style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex, nofollow">
<meta name="viewport" content="width=device-width, initial-scale=0.5, user-scalable=no">
<link rel="stylesheet" type="text/css" href="lib/ice-coder.css?microtime=<?php echo microtime(true);?>">
<link rel="stylesheet" href="<?php
if ($ICEcoder["theme"]=="default") {echo 'lib/editor.css';} else {echo $ICEcoder["codeMirrorDir"].'/theme/'.$ICEcoder["theme"].'.css';};
echo "?microtime=".microtime(true);
?>">
<link rel="icon" type="image/png" href="favicon.png">
<script>
iceRoot = "<?php echo $ICEcoder['root']; ?>";
window.onbeforeunload = function() {
if(top.ICEcoder.autoLogoutTimer < top.ICEcoder.autoLogoutMins*60) {
for(var i=1;i<=ICEcoder.savedPoints.length;i++) {
if (ICEcoder.savedPoints[i-1]!=top.ICEcoder.getcMInstance(i).changeGeneration()) {
return "<?php echo $t['You have some...'];?>.";
}
}
return "<?php echo $t['Are you sure...'];?>";
}
}
t = {
<?php
// Load the lang array for what's in the JS file
$t = $text['ice-coder'];
$tOutput = "";
foreach ($t as $key => $value) {
$tOutput .= '"'.$key.'" : "'.$value.'",'.PHP_EOL;
}
echo rtrim($tOutput,",".PHP_EOL).PHP_EOL;
// Back to the lang array for index
$t = $text['index'];
?>
}
</script>
<script language="JavaScript" src="lib/ice-coder<?php if (!$ICEcoder['devMode']) {echo '.min';};?>.js?microtime=<?php echo microtime(true);?>"></script>
<script src="lib/mmd.js?microtime=<?php echo microtime(true);?>"></script>
<script src="lib/draggabilly.pkgd.min.js?microtime=<?php echo microtime(true);?>"></script>
<script src="farbtastic/farbtastic.js?microtime=<?php echo microtime(true);?>"></script>
<script src="lib/difflib.js?microtime=<?php echo microtime(true);?>"></script>
<link rel="stylesheet" href="farbtastic/farbtastic.css?microtime=<?php echo microtime(true);?>" type="text/css">
</head>
<body onLoad="<?php
echo "top.ICEcoder.versionNo = '".$ICEcoder["versionNo"]."';".
'top.ICEcoder.previousFiles = [';
if ($ICEcoder["previousFiles"]!="") {
$openFilesArray = explode(",",$ICEcoder["previousFiles"]);
echo "'".implode("','",$openFilesArray)."'";
}
echo "];";
echo "top.ICEcoder.theme = '".($ICEcoder["theme"]=="default" ? 'icecoder' : $ICEcoder["theme"])."';".
"top.ICEcoder.autoLogoutMins = ".$ICEcoder["autoLogoutMins"].";".
"top.ICEcoder.fontSize = '".$ICEcoder["fontSize"]."';".
"top.ICEcoder.openLastFiles = ".($ICEcoder["openLastFiles"] ? 'true' : 'false').";".
"top.ICEcoder.updateDiffOnSave = ".($ICEcoder["updateDiffOnSave"] ? 'true' : 'false').";".
"top.ICEcoder.languageUser = '".$ICEcoder["languageUser"]."';".
"top.ICEcoder.codeAssist = ".($ICEcoder["codeAssist"] ? 'true' : 'false').";".
"top.ICEcoder.lockedNav = ".($ICEcoder["lockedNav"] ? 'true' : 'false').";".
"top.ICEcoder.lineWrapping = ".($ICEcoder["lineWrapping"] ? 'true' : 'false').";".
"top.ICEcoder.lineNumbers = ".($ICEcoder["lineNumbers"] ? 'true' : 'false').";".
"top.ICEcoder.showTrailingSpace = ".($ICEcoder["showTrailingSpace"] ? 'true' : 'false').";".
"top.ICEcoder.matchBrackets = ".($ICEcoder["matchBrackets"] ? 'true' : 'false').";".
"top.ICEcoder.autoCloseTags = ".($ICEcoder["autoCloseTags"] ? 'true' : 'false').";".
"top.ICEcoder.autoCloseBrackets = ".($ICEcoder["autoCloseBrackets"] ? 'true' : 'false').";".
"top.ICEcoder.indentWithTabs = ".($ICEcoder["indentWithTabs"] ? 'true' : 'false').";".
"top.ICEcoder.indentAuto = ".($ICEcoder["indentAuto"] ? 'true' : 'false').";".
"top.ICEcoder.indentSize = ".$ICEcoder["indentSize"].";".
"top.ICEcoder.demoMode = ".($ICEcoder["demoMode"] ? 'true' : 'false').";".
"top.ICEcoder.tagWrapperCommand = '".$ICEcoder["tagWrapperCommand"]."';".
"top.ICEcoder.autoComplete = '".$ICEcoder["autoComplete"]."';".
"top.ICEcoder.bugFilePaths = ['".implode("','",$ICEcoder["bugFilePaths"])."'];".
"top.ICEcoder.bugFileCheckTimer = ".$ICEcoder["bugFileCheckTimer"].";".
"top.ICEcoder.bugFileMaxLines = ".$ICEcoder["bugFileMaxLines"].";".
"top.ICEcoder.fileDirResOutput = '".$ICEcoder["fileDirResOutput"]."';".
"top.ICEcoder.newDirPerms = ".$ICEcoder["newDirPerms"].";".
"top.ICEcoder.newFilePerms = ".$ICEcoder["newFilePerms"].";";
if($ICEcoder["githubAuthToken"] != "") {
$_SESSION['githubAuthToken'] = $ICEcoder["githubAuthToken"];
echo "top.ICEcoder.githubAuthTokenSet = true;";
}
echo "top.ICEcoder.csrf = '".$_SESSION["csrf"]."';";
?>ICEcoder.init()<?php echo $updateMsg.$onLoadExtras;?>;top.ICEcoder.content.style.visibility='visible';top.ICEcoder.filesFrame.contentWindow.frames['processControl'].location.href = 'processes/on-load.php';<?php if(isset($_GET["display"]) && $_GET["display"] == "updated") {echo "top.ICEcoder.updated();";};?>" onResize="ICEcoder.setLayout()" onKeyDown="return ICEcoder.interceptKeys('coder',event);" onKeyUp="parent.ICEcoder.resetKeys(event);" onBlur="parent.ICEcoder.resetKeys(event);">
<div id="blackMask" class="blackMask" onClick="if (!ICEcoder.overPopup) {ICEcoder.showHide('hide',this)}" onContextMenu="return false">
<div class="popupVCenter">
<div class="popup" id="mediaContainer"></div>
</div>
<div class="floatingContainer" id="floatingContainer"></div>
</div>
<div id="loadingMask" class="blackMask" style="visibility: visible" onContextMenu="return false">
<div class="popupVCenter">
<div class="popup">
<div class="spinner"></div>
<?php echo $t['working'];?>...
</div>
</div>
</div>
<div id="plugins" class="plugins" style="<?php echo $ICEcoder["pluginPanelAligned"];?>: 0" onMouseOver="top.ICEcoder.showHidePlugins('show')" onMouseOut="top.ICEcoder.showHidePlugins('hide')" onClick="top.ICEcoder.showHidePlugins('hide')">
<div style="padding: 15px">
<a nohref onClick="top.ICEcoder.showColorPicker(top.document.getElementById('color') ? top.document.getElementById('color').value : '#123456')" title="Farbtastic
<?php echo $t['Color picker'];?>"><img src="images/color-picker.png" style="cursor: pointer" alt="Color Picker"></a><br><br>
<div id="pluginsOptional"><?php echo $pluginsDisplay; ?></div>
<a nohref onclick="top.ICEcoder.pluginsManager()" title="<?php echo $t['Plugins Manager'];?>" style="color: #fff; cursor: pointer">+ / -</a>
</div>
</div>
<div id="fileMenu" class="fileMenu" onMouseOver="ICEcoder.changeFilesW('expand')" onMouseOut="ICEcoder.changeFilesW('contract');top.ICEcoder.hideFileMenu()" style="opacity: 0" onContextMenu="return false">
<span id="folderMenuItems">
<a href="javascript:top.ICEcoder.newFile()" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['New File'];?></a>
<a href="javascript:top.ICEcoder.newFolder()" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['New Folder'];?></a>
<div onMouseOver="ICEcoder.showFileMenu()" style="padding: 2px 0"><hr></div>
<a href="javascript:top.ICEcoder.uploadFilesSelect(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Upload File(s)'];?></a>
<div style="display: none">
<form enctype="multipart/form-data" id="uploadFilesForm" action="lib/file-control-xhr.php?action=upload&file=/uploaded" method="POST" target="fileControl">
<input type="hidden" name="folder" id="uploadDir" value="/">
<input type="file" name="filesInput[]" id="fileInput" onchange="top.ICEcoder.uploadFilesSubmit(this)" multiple>
<input type="submit" value="Upload File">
<input type="hidden" name="csrf" value="<?php echo $_SESSION["csrf"]; ?>">
</form>
</div>
<a href="javascript:top.ICEcoder.pasteFiles(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])" onMouseOver="ICEcoder.showFileMenu()" id="fmMenuPasteOption" style="display: none"><?php echo $t['Paste'];?></a>
<div onMouseOver="ICEcoder.showFileMenu()" style="padding: 2px 0"><hr></div>
</span>
<a href="javascript:top.ICEcoder.openFilesFromList(top.ICEcoder.selectedFiles)" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Open'];?></a>
<a href="javascript:top.ICEcoder.copyFiles(top.ICEcoder.selectedFiles)" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Copy'];?></a>
<a href="javascript:top.ICEcoder.duplicateFiles(top.ICEcoder.selectedFiles)" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Duplicate'];?></a>
<a href="javascript:top.ICEcoder.deleteFiles(top.ICEcoder.selectedFiles)" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Delete'];?></a>
<span id="singleFileMenuItems">
<a href="javascript:top.ICEcoder.renameFile(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Rename'];?></a>
<div onMouseOver="ICEcoder.showFileMenu()" style="padding: 2px 0"><hr></div>
<a nohref onClick="window.open('//<?php echo $_SERVER['HTTP_HOST'];?>' + iceRoot + top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1].replace(/\|/g,'/'))" onMouseOver="ICEcoder.showFileMenu()" style="cursor: pointer"><?php echo $t['View Webpage'];?></a>
</span>
<div onMouseOver="ICEcoder.showFileMenu()" style="padding: 2px 0"><hr></div>
<?php
if (file_exists(dirname(__FILE__)."/plugins/zip-it/index.php")) {
echo '<a href="javascript:top.ICEcoder.zipIt(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])" onMouseOver="ICEcoder.showFileMenu()">Zip It!</a>'.PHP_EOL;
};
?>
<a href="javascript:top.ICEcoder.downloadFile(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Download'];?></a>
<div onMouseOver="ICEcoder.showFileMenu()" style="padding: 2px 0"><hr></div>
<a href="javascript:top.ICEcoder.propertiesScreen(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])" onMouseOver="ICEcoder.showFileMenu()"><?php echo $t['Properties'];?></a>
</div>
<div id="header" class="header" onContextMenu="return false"></div>
<div id="files" class="files" onMouseOver="ICEcoder.changeFilesW('expand')" onMouseOut="ICEcoder.changeFilesW('contract'); top.ICEcoder.hideFileMenu();" onContextMenu="return false">
<div id="fileNav" class="fileNav">
<ul>
<li><a nohref onclick="top.ICEcoder.canShowFMNav=true;top.ICEcoder.showHideFileNav('show','optionsFile')" onmouseover="if(top.ICEcoder.canShowFMNav) {top.ICEcoder.showHideFileNav('show','optionsFile')}" id="optionsFileNav"><?php echo $t['File'];?></a></li>
<li><a nohref onclick="top.ICEcoder.canShowFMNav=true;top.ICEcoder.showHideFileNav('show','optionsEdit')" onmouseover="if(top.ICEcoder.canShowFMNav) {top.ICEcoder.showHideFileNav('show','optionsEdit')}" id="optionsEditNav"><?php echo $t['Edit'];?></a></li>
<li><a nohref onclick="top.ICEcoder.canShowFMNav=true;top.ICEcoder.showHideFileNav('show','optionsSource')" onmouseover="if(top.ICEcoder.canShowFMNav) {top.ICEcoder.showHideFileNav('show','optionsSource')}" id="optionsSourceNav"><?php echo $t['Source'];?></a></li>
<li><a nohref onclick="top.ICEcoder.canShowFMNav=true;top.ICEcoder.showHideFileNav('show','optionsHelp')" onmouseover="if(top.ICEcoder.canShowFMNav) {top.ICEcoder.showHideFileNav('show','optionsHelp')}" id="optionsHelpNav"><?php echo $t['Help'];?></a></li>
</ul>
</div>
<div id="githubNav" class="githubNav">
<div class="commit" id="githubNavCommit" onclick="top.ICEcoder.githubAction('commit')">Commit</div>
<div class="selected" id="githubNavSelectedCount">Selected: 0</div>
<div class="pull" id="githubNavPull" onclick="top.ICEcoder.githubAction('pull')">Pull</div>
</div>
<div class="options" id="fileOptions">
<div id="optionsFile" class="optionsList" onmouseover="top.ICEcoder.showHideFileNav('show',this.id)" onmouseout="top.ICEcoder.showHideFileNav('hide',this.id);top.ICEcoder.canShowFMNav=false">
<ul>
<li><a nohref onClick="ICEcoder.newFile()"><?php echo $t['New File'];?>...</a></li>
<li><a nohref onClick="ICEcoder.newFolder()"><?php echo $t['New Folder'];?>...</a></li>
<li><a nohref onClick="ICEcoder.openPrompt()"><?php echo $t['Open'];?>...</a></li>
<li><a nohref onClick="ICEcoder.saveFile()"><?php echo $t['Save'];?></a></li>
<li><a nohref onclick="ICEcoder.saveFile('saveAs')"><?php echo $t['Save As'];?>...</a></li>
<li><a nohref onclick="ICEcoder.openPreviewWindow()"><?php echo $t['Live Preview'];?></a></li>
<li><a nohref onclick="ICEcoder.downloadFile(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])"><?php echo $t['Download'];?></a></li>
<li><a nohref onclick="ICEcoder.copyFiles(top.ICEcoder.selectedFiles)"><?php echo $t['Copy'];?></a></li>
<li><a nohref onclick="ICEcoder.pasteFiles(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])"><?php echo $t['Paste'];?></a></li>
<li><a nohref onclick="ICEcoder.deleteFiles(top.ICEcoder.selectedFiles)"><?php echo $t['Delete'];?></a></li>
<li><a nohref onclick="ICEcoder.duplicateFiles(top.ICEcoder.selectedFiles)"><?php echo $t['Duplicate'];?></a></li>
<li><a nohref onclick="ICEcoder.renameFile(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])"><?php echo $t['Rename'];?></a></li>
<li><a nohref onclick="ICEcoder.uploadFilesSelect(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])"><?php echo $t['Upload'];?>...</a></li>
<li><a nohref onclick="ICEcoder.zipIt(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])"><?php echo $t['Zip'];?></a></li>
<li><a nohref onclick="ICEcoder.propertiesScreen(top.ICEcoder.selectedFiles[top.ICEcoder.selectedFiles.length-1])"><?php echo $t['Properties'];?>...</a></li>
<li><a nohref onClick="ICEcoder.printCode()"><?php echo $t['Print'];?>...</a></li>
<li><a nohref onClick="ICEcoder.fullScreenSwitcher()"><?php echo $t['Fullscreen toggle'];?></a></li>
<li><a nohref onClick="ICEcoder.logout()"><?php echo $t['Logout'];?></a></li>
</ul>
</div>
<div id="optionsEdit" class="optionsList" onmouseover="top.ICEcoder.showHideFileNav('show',this.id)" onmouseout="top.ICEcoder.showHideFileNav('hide',this.id);top.ICEcoder.canShowFMNav=false">
<ul>
<li><a nohref onclick="ICEcoder.undo()"><?php echo $t['Undo'];?></a></li>
<li><a nohref onclick="ICEcoder.redo()"><?php echo $t['Redo'];?></a></li>
<li><a nohref onclick="ICEcoder.indent('more')"><?php echo $t['Indent more'];?></a></li>
<li><a nohref onclick="ICEcoder.indent('less')"><?php echo $t['Indent less'];?></a></li>
<li><a nohref onclick="ICEcoder.autocomplete()"><?php echo $t['Autocomplete'];?></a></li>
<li><a nohref onclick="ICEcoder.lineCommentToggle()"><?php echo $t['Comment/Uncomment'];?></a></li>
<li><a nohref onclick="ICEcoder.jumpToDefinition()"><?php echo $t['Jump to Definition'];?></a></li>
<li><a nohref onClick="ICEcoder.settingsScreen()"><?php echo $t['Settings'];?></a></li>
</ul>
</div>
<div id="optionsSource" class="optionsList" onmouseover="top.ICEcoder.showHideFileNav('show',this.id)" onmouseout="top.ICEcoder.showHideFileNav('hide',this.id);top.ICEcoder.canShowFMNav=false">
<ul>
<li><a nohref onclick="ICEcoder.goLocalhostRoot()">Localhost</a></li>
<li><a nohref onclick="ICEcoder.ftpManager()">FTP</a></li>
<li><a nohref onclick="ICEcoder.githubManager()">GitHub</a></li>
<!--
<li><a nohref onclick="ICEcoder.message('SVN integration coming soon')">SVN</a></li>
<li><a nohref onclick="ICEcoder.message('Bitbucket integration coming soon\n\nCan you help with this? Get involved at icecoder.net')">Bitbucket</a></li>
<li><a nohref onclick="ICEcoder.message('Amazon AWS integration coming soon\n\nCan you help with this? Get involved at icecoder.net')">Amazon AWS</a></li>
<li><a nohref onclick="ICEcoder.message('Dropbox integration coming soon\n\nCan you help with this? Get involved at icecoder.net')">Dropbox</a></li>
<li><a nohref onclick="ICEcoder.message('SSH integration coming soon\n\nCan you help with this? Get involved at icecoder.net')">SSH</a></li>
//-->
</ul>
</div>
<div id="optionsHelp" class="optionsList" onmouseover="top.ICEcoder.showHideFileNav('show',this.id)" onmouseout="top.ICEcoder.showHideFileNav('hide',this.id);top.ICEcoder.canShowFMNav=false">
<ul>
<li><a nohref onclick="ICEcoder.showManual('<?php echo $ICEcoder["versionNo"];?>')"><?php echo $t['Manual'];?></a></li>
<li><a nohref onClick="ICEcoder.helpScreen()"><?php echo $t['Shortcuts'];?></a></li>
<li><a nohref onclick="ICEcoder.searchForSelected()"><?php echo $t['Search for selected'];?></a></li>
<li><a href="https://icecoder.net" target="_blank">ICEcoder <?php echo $t['website'];?></a></li>
</ul>
</div>
</div>
<iframe id="filesFrame" class="frame" name="ff" src="files.php" style="opacity: 0" onLoad="this.style.opacity='1';this.contentWindow.onscroll=function(){top.ICEcoder.mouseDown=false; top.ICEcoder.mouseDownInCM=false}"></iframe>
<div class="serverMessage" id="serverMessage"></div>
</div>
<div id="editor" class="editor">
<div id="tabsBar" class="tabsBar" onContextMenu="return false">
<a nohref onClick="top.ICEcoder.closeAllTabs()"><img src="images/nav-close-all.gif" class="closeAllTabs" title="<?php echo $t['Close all tabs'];?>"></a>
<a nohref onClick="top.ICEcoder.alphaTabs()"><img src="images/nav-alpha.png" class="alphaTabs" title="<?php echo $t['Alphabetize tabs'];?>"></a>
<?php
for ($i=1;$i<=100;$i++) {
echo '<div id="tab'.$i.'" class="tab" onMouseDown="ICEcoder.canSwitchTabs ? ICEcoder.switchTab(parseInt(this.id.slice(3),10)) : ICEcoder.canSwitchTabs=true; thisColor=top.ICEcoder.tabFGselected; if (!top.ICEcoder.overCloseLink) {ICEcoder.tabDragStart(parseInt(this.id.slice(3),10))}; if (event.button==1) {ICEcoder.closeTab(parseInt(this.id.slice(3),10)); return false};" onMouseOver="thisColor=this.style.color;this.style.color=top.ICEcoder.tabFGselected" onMouseOut="this.style.color=thisColor"></div>';
}
?><div class="newTab" onClick="ICEcoder.newTab()" id="newTab">+</div>
</div>
<div id="findBar" class="findBar" onContextMenu="return false">
<form name="findAndReplace" onSubmit="ICEcoder.findReplace(top.document.getElementById('find').value,false,true);return false">
<div class="findReplace">
<div class="findText"><?php echo $t['Find'];?></div>
<input type="text" name="find" value="" id="find" class="textbox find" onKeyUp="ICEcoder.findReplace(top.document.getElementById('find').value,true,false,event.keyCode == 27)">
<div class="selectWrapper" style="width: 41px">
<select name="connector" onChange="ICEcoder.findReplaceOptions()" style="width: 40px; margin-top: 4px">
<option><?php echo $t['in'];?></option>
<option><?php echo $t['and'];?></option>
</select>
</div>
<div class="replaceText" id="rText" style="display: none">
<div class="selectWrapper" style="width: 75px; overflow: visible">
<select name="replaceAction" style="width: 72px; margin-top: -2px">
<option><?php echo $t['replace'];?></option>
<option><?php echo $t['replace all'];?></option>
</select>
</div>
with
</div>
<input type="text" name="replace" value="" id="replace" class="textbox replace" style="display: none">
<div class="targetText" id="rTarget" style="display: none">in</div>
<div class="selectWrapper" style="width: 104px">
<select name="target" onChange="ICEcoder.updateResultsDisplay(this.value=='this document' ? 'show' : 'hide')" style="width: 101px; margin-top: 4px; margin-left: 2px">
<option><?php echo $t['this document'];?></option>
<option><?php echo $t['open documents'];?></option>
<option><?php echo $t['all files'];?></option>
<option><?php echo $t['all filenames'];?></option>
</select>
</div>
<input type="submit" name="submit" id="findReplaceSubmit" value="&gt;&gt;" class="submit">
<div class="results" id="results"></div>
</div>
<input type="hidden" name="csrf" value="<?php echo $_SESSION["csrf"]; ?>">
</form>
<form onSubmit="return ICEcoder.goToLine()">
<div class="codeAssist" title="<?php echo $t['Turn on/off...'];?>">
<input type="checkbox" name="codeAssist" id="codeAssist" class="codeAssistCheckbox" <?php if ($ICEcoder['codeAssist']) {echo 'checked ';};?>>
<span class="codeAssistDisplay" id="codeAssistDisplay" style="background-position: <?php echo $ICEcoder['codeAssist'] ? "0" : "-16";?> 0" onClick="top.ICEcoder.codeAssistToggle()"></span> <?php echo $t['Code Assist'];?>
</div>
<div class="goLine"><?php echo $t['Go to Line'];?> <input type="text" name="goToLine" value="" id="goToLineNo" class="textbox goToLine">
<div class="view" title="<?php echo $t['View'];?>" onClick="top.ICEcoder.openPreviewWindow()" id="fMView"></div>
<div class="bug" title="<?php echo $t['Bug reporting not active'];?>" onClick="top.ICEcoder.openBugReport()" id="bugIcon"></div>
<div class="minimapLink" onclick="top.ICEcoder.docExplorerShow('miniMap')"></div>
<div class="functionClassListLink" onclick="top.ICEcoder.docExplorerShow('functionClassList')"></div>
<div class="terminalLink" onclick="top.ICEcoder.docExplorerShow('terminal')"></div>
<input type="hidden" name="csrf" value="<?php echo $_SESSION["csrf"]; ?>">
</form>
</div>
<iframe name="terminalFrame" id="terminal" src="terminal.php" frameborder="0" style="position: fixed; display: none; top: 0; z-index: 2"></iframe>
<iframe name="contentFrame" id="content" src="editor.php" class="code" scrolling="no"></iframe>
</div>
<div class="footer" id="footer" onContextMenu="return false">
<div class="nesting" id="nestValid"></div>
<div class="versionsDisplay" id="versionsDisplay" onclick="top.ICEcoder.versionsScreen(top.ICEcoder.openFiles[top.ICEcoder.selectedTab-1].replace(/\//g,'|'))"></div>
<div class="splitPaneControls" id="splitPaneControls"><div class="off" id="splitPaneControlsOff" title="<?php echo $t['Single pane'];?>" onclick="top.ICEcoder.setSplitPane('off')"></div><div class="on" id="splitPaneControlsOn" title="<?php echo $t['Diff pane also'];?>" onclick="top.ICEcoder.setSplitPane('on')" style="opacity: 0.5"></div></div>
<div class="splitPaneNames" id="splitPaneNamesMain">Main Pane</div>
<div class="splitPaneNames" id="splitPaneNamesDiff">Diff Pane</div>
<div class="byteDisplay" id="byteDisplay" style="display: none" onClick="top.ICEcoder.showDisplay('char')"></div>
<div class="charDisplay" id="charDisplay" style="display: inline-block" onClick="top.ICEcoder.showDisplay('byte')"></div>
</div>
<div class="docExplorer" id="docExplorer">
<div class="miniMap" id="miniMap"><div class="miniMapContainer" id="miniMapContainer"></div><div class="miniMapContent" id="miniMapContent"></div></div>
<div class="functionClassList" id="functionClassList"></div>
</div>
<script>
ICEcoder.initAliases();
ICEcoder.setLayout('dontSetEditor');
</script>
</body>
</html>

427
lang/chinese-simplified.php Normal file
View File

@@ -0,0 +1,427 @@
<?php
// Chinese language translation
// by: @lzh370 (GitHub)
// lzh370@qq.com
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &amp;). Translations on right side.
$text = array(
// / [ROOT LEVEL]
"editor" =>
array(
"Click icons for..." => "<b>点击图标<br>求助 &amp;<br>使用信息</b>",
"server" => "服务器",
"Server name, OS..." => "服务器名称, OS & IP:",
"Root" => "根目录:",
"ICEcoder root" => "ICEcoder 根目录:",
"PHP version" => "PHP 版本:",
"Date & time" => "日期 & 时间:",
"your device" => "你的设备",
"Browser" => "浏览器:",
"Your IP" => "你的 IP:",
"files" => "文件",
"Last 10 files..." => "最后10个打开的文件:",
"none" => "[none]",
"test suite" => "测试套件",
"Run unit tests" => "运行单元测试",
"dev mode" => "开发模式",
"Status" => "状态",
"Using" => "使用",
"You can switch..." => "你可以在 lib/config__settings.php 中设置开发模式开关",
"results" => "结果"
),
"files" =>
array(
"Lock" => "锁定",
"Refresh" => "刷新",
"ROOT" => "[ROOT]"
),
"index" =>
array(
"UPDATE INFO" => "更新信息",
"now available" => "现在可以",
"Your version is" => "你的版本是",
"Update now" => "现在更新",
"You have some..." => "你有一些未保存的更改",
"Are you sure you want to close?" => "Are you sure you want to close?",
"working" => "载入中",
"Color picker" => "颜色选择器",
"New File" => "新建文件",
"New Folder" => "新建文件夹",
"Upload File(s)" => "上传文件",
"Paste" => "粘贴",
"Open" => "打开",
"Copy" => "复制",
"Duplicate" => "副本",
"Delete" => "删除",
"Rename" => "重命名",
"View Webpage" => "预览网页",
"Download" => "下载",
"Properties" => "属性",
"File" => "文件",
"Edit" => "编辑",
"Remote" => "远程",
"Help" => "帮助",
"Save" => "保存",
"Save As" => "另存为",
"Live Preview" => "实时预览",
"Upload" => "上传",
"Zip" => "压缩",
"Print" => "打印",
"Fullscreen toggle" => "全屏切换",
"Logout" => "退出",
"Undo" => "撤销",
"Redo" => "重做",
"Indent more" => "增加缩进",
"Indent less" => "减少缩进",
"Autocomplete" => "自动完成",
"Comment/Uncomment" => "注释 / 清除注释",
"Jump to Definition" => "跳转至指定行",
"Manual" => "手册",
"Shortcuts" => "快捷键",
"Settings" => "设置",
"Search for selected" => "搜索选择",
"website" => "网站",
"Close all tabs" => "关闭所有选项卡",
"Alphabetize tabs" => "按字母顺序排列的选项卡",
// "Find" => "搜索",
// "in" => "in",
// "and" => "and",
// "replace" => "替换",
// "replace all" => "替换所有",
// "this document" => "当前文件",
// "open documents" => "打开的文件",
// "all files" => "所有文件",
// "all filenames" => "所有文件名",
"Turn on/off..." => "开启/关闭代码辅助",
"Code Assist" => "代码辅助",
"Go to Line" => "转到行",
"View" => "预览",
"Bug reporting not active" => "错误报告没有激活"
),
// /LIB
"bug-files-check" =>
array(
"Found in" => "搜索到:"
),
"file-control" =>
array(
"Sorry" => "抱歉",
"does not seem..." => "服务器上不存在",
"Sorry, could not..." => "抱歉, 不能得到的内容",
"Sorry, cannot create..." => "抱歉, 不能创建文件夹",
"Sorry, cannot copy" => "抱歉, 不能复制",
"into" => "",
"Uploaded file(s) OK" => "上传文件完成",
"Sorry, cannot upload" => "抱歉, 不能上传",
"Sorry, cannot upload..." => "抱歉, 在演示模式不能上传文件",
"Sorry, cannot rename" => "抱歉, 不能重命名",
"Maybe public write..." => "也许父文件夹也需要写入权限?",
"Sorry, cannot move" => "抱歉, 不能移动",
"Sorry, cannot save" => "抱歉, 不能保存",
"Sorry, cannot replace..." => "抱歉, 目标不能替换文本",
"Sorry, cannot change..." => "抱歉, 目标不能更改权限",
"Sorry, cannot delete..." => "抱歉, 不能删除根级别ROOT",
"Sorry, cannot delete" => "抱歉, 不能删除",
"Sorry, this file..." => "抱歉, 此文件已更改, 不能保存",
"Reload this file..." => "重新加载该文件, 你的版本复制到一个新文件?",
"There was a..." => "这些代码还没有完全准备好. 所以 ICEcoder 需要再次重新加载.",
"displayed at" => "显示在",
"Enter filename to..." => "输入文件名并保存到",
"That file exists..." => "该文件已存在, 要覆盖吗?",
"Saving" => "正在保存"
),
"get-branch" =>
array(
"There are no..." => "本地文件与 GitHub repo 没有明显差异. 切换回普通模式?",
"Sorry, there was..." => "抱歉, 这里有一个错误, 代码:",
"Your local folder..." => "你的本地文件夹是空的, 你是否想克隆"
),
"github-manager" =>
array(
"Sorry, cannot create..." => "抱歉, 不能创建目录到",
"Cannot update config..." => "不能更新配置文件. 请对",
"and try again" => "增加写入权限, 并再次尝试",
"saving github paths" => "正在保存 github 路径...",
"github paths" => "github 路径",
"Choose existing path" => "选择现有路径",
"Local path" => "本地路径",
"Remote GitHub path" => "远程 GitHub 路径",
"Choose" => "选择",
"Set local and..." => "设置本地路径和远程路径需要去除空格",
"Update" => "更新",
"Add new path" => "增加新路径",
"Add" => "增加",
"Usage Info" => "使用方法:",
"Enter relative local..." => "输入本地相对路径 (/server/myfiles) 和 GitHub 绝对路径 (https://github.com/user/repo 或 https://github.com/user/repo/tree/branch 各分支), 按照示例. 完成后你就建立了这两个地点的源路径, 它是成对数存在.",
"You can then..." => "你可以选择一个路径作为 ICEcoder 的根路径.",
"The file manager..." => "文件管理器右侧会显示一个新的GitHub图标, 您可以点击执行, 会自动校验并显示本地与github源之间的差异. 这些差别可以被提交并推送到在GitHub上的远程路径或克隆到你的本地路径, 用来同步您的文件.",
"If you want..." => "如果你想设置的另一个根路径, 可以在 帮助 > 设置窗口 中进行设置."
),
"github" =>
array(
"Sorry, you do..." => "抱歉, 您的服务器没有启用 OpenSSL 的 PHP 实例, 所以 https 目前不可用. GitHub 的数据传输必须要用 https 连接, 请修改 php.ini 设置, 重启你的服务器并重新尝试"
),
"headers" =>
array(
"Bad CSRF token..." => "错误的 CSRF token. 请在 https://github.com/mattpass/ICEcoder 报告错误信息, 以便我们修复它."
),
"help" =>
array(
"shortcuts" => "快捷键",
"Within document" => "文档",
"On Tabs" => "选项卡",
"Within file manager" => "文件管理器",
"Anywhere" => "其他",
"Space" => "空格",
"Click" => "单击",
"or" => "",
"Left click" => "左键单击",
"Middle click" => "中键单击",
"Double click tap..." => "双击 / 点击 (移动端)",
"Right click" => "右键单击",
"Middle scrollwheel" => "中间滚轮滚动",
"Drag" => "拖动",
"Autocomplete add snippet" => "自动完成 / 添加片段",
"Multiple select" => "多选",
"Move line up" => "向上移动行",
"Move line down" => "向下移动行",
"Duplicate lines" => "复制行",
"Remove lines" => "删除行",
"Insert line before" => "前插入行",
"Insert line after" => "后插入行",
"Search for selected" => "搜索选择",
"Jump to definition" => "跳转到 / 跳转回",
"Comment uncomment" => "注释 / 清除注释",
"Insert tab indent" => "插入tab / 插入选择",
"Wrap with div" => "封装 &lt;div&gt;",
"Wrap with span" => "封装 &lt;span&gt;",
"Wrap unwrap p" => "封装 / 撤销封装 &lt;p&gt;",
"Wrap unwrap a" => "封装 / 撤销封装 &lt;a&gt;",
"Wrap unwrap b" => "封装 / 撤销封装 &lt;b&gt;",
"Wrap unwrap i" => "封装 / 撤销封装 &lt;i&gt;",
"Wrap unwrap strong" => "封装 / 撤销封装 &lt;strong&gt;",
"Wrap unwrap em" => "封装 / 撤销封装 &lt;em&gt;",
"Wrap unwrap li" => "封装 / 撤销封装 &lt;li&gt;",
"Wrap unwrap h1..." => "封装 / 撤销封装 &lt;h1&gt; - &lt;h3&gt;",
"End line with..." => "换行 &lt;br&gt;",
"Close tab" => "关闭选项卡",
"Select file folder" => "选择文件 / 文件夹",
"Open file" => "打开文件",
"Range select" => "范围选择",
"Options for selected" => "所选的选项",
"Delete selected" => "删除已选",
"Next previous tab" => "下一个 / 上一个 选项卡",
"Next tab" => "下一个选项卡",
"Previous tab" => "上一个选项卡",
"New tab" => "新建选项卡",
"Close current tab" => "关闭当前选项卡",
"Open file prompt" => "打开文件的提示",
"Find" => "搜索",
"Focus on Go..." => "光标定位到转到行的输入框",
"Save" => "保存",
"Save as" => "另存为...",
"View webpage" => "预览网页",
"Contract expand file..." => "收缩 / 扩展文件管理器",
"Fold unfold current..." => "折叠 / 展开当前行",
"Refocus on document" => "光标重新聚焦于文档",
"Cancel tasks" => "取消任务"
),
"ice-coder" =>
array(
"No text selected..." => "搜索中没有选中的文本",
"Creating Folder" => "正在创建文件夹",
"Sorry you can..." => "抱歉, 只能同时打开100个文件!",
"Opening File" => "正在打开文件",
"Enter relative file..." => "输入本地相对路径 (前缀 /) 或远程 URL",
"Getting" => "正在获取",
"Please enter the..." => "请输入新的名称为",
"Renaming to" => "正在重命名",
"Moving to" => "正在移动到",
"Deleting File" => "正在删除文件",
"Pasting File" => "正在粘贴文件",
"Sorry cannot paste..." => "抱歉, 无法粘贴到根路径",
"Nothing to paste..." => "粘贴失败, 请先复制一个文件 / 文件夹!",
"Replacing text in" => "正在替换文本",
"Cancelled tasks" => "取消任务",
"Open previous files" => "打开以前的文件?",
"Please enter your..." => "请输入您的 GitHub token (允许使用个人令牌或客户端令牌). 可以查看 Github Auth Token 的帮助 > 更多信息在设置窗口",
"This will compare..." => "将比较和显示你的本地目录和 GitHub repo 之间的差异. 确定吗?",
"Please note for..." => "请注意: 需要更新才能正常工作, 你需要为所有 ICEcoder 文件和文件夹设置写入和删除权限. 如果您需要恢复 ICEcoder 到这个版本, 你可以在 /tmp 目录找到它们. 点击 OK 继续使用自动升级或点击 cancel 访问 ICEcoder 网站, 您也可以到 grab 的项目首页下载 zip 来进行手动更新.",
"You can start..." => "你可以在 帮助 > 设置中启动错误报告",
"Error cannot find..." => "错误: 无法找到/进入错误文件路径",
"No new errors..." => "没有新的错误被找到",
"You have made..." => "您已做的更改未保存。您确定要关闭它而不保存吗?",
"Close all tabs" => "是否关闭所有选项卡?"
),
"login" =>
array(
"set password" => "设置密码",
"login" => "登陆",
"To disable registration..." => "要禁用注册模式, 请打开设置或打开文件 lib/config___settings.php 并更改 enableRegistration 为 false , 并重新载入本页面",
"Registration mode enabled" => "注册模式已启用",
"auto-check for updates" => "自动检测更新",
"To put into..." => "要禁用多用户模式, 请打开设置或打开文件 lib/config___settings.php 并更改 multiUser 为 true , 并重新载入本页面",
"multi-user" => "多用户"
),
"multiple-results" =>
array(
"rename all" => "重命名所有",
"replace all" => "全部替换",
"document" => "文档",
"Found" => "找到",
"times" => "时间",
"replace" => "替换",
"file folder" => "文件/文件夹",
"rename to" => "重命名为",
"rename" => "重命名",
"file" => "文件",
"No matches found" => "没有找到匹配",
"selected" => "选择",
"found in" => "查询结果在",
"Replaced" => "已替换"
),
"plugins-manager" =>
array(
"ICEcoder needs to..." => "ICEcoder 需要重新加载,这个插件才可以使用。现在刷新吗?",
"saving plugins" => "正在保存插件...",
"Cannot update config..." => "不能更新配置文件. 请为",
"and try again" => "设置写入权限并刷新重试",
"couldnt delete dir" => "不能删除目录",
"couldnt delete file" => "不能删除文件",
"plugins" => "插件",
"Guide to writing..." => "编写插件指南",
"Manage Installed" => "管理已安装",
"URL" => "URL",
"Target" => "目标",
"Timer" => "定时器",
"Update" => "更新",
"Install" => "安装",
"Uninstall" => "卸载",
"Reload after install..." => "安装后需要刷新"
),
"properties" =>
array(
"properties" => "属性",
"Size" => "尺寸",
"Modified" => "修改",
"Last access" => "最近访问",
"Type" => "类型",
"Readable Writeable" => "可读 / 可写",
"Relative path" => "相对路径",
"Absolute path" => "绝对路径",
"Contains" => "包含",
"Permissions" => "权限",
"Owner" => "所有者",
"Group" => "",
"Public" => "公众",
"Read" => "读取",
"Write" => "写入",
"Execute" => "执行",
"Change to" => "更改为",
"update" => "更新"
),
"settings-common" =>
array(
"Your document does..." => "你的文档不是UTF-8编码, 它将被转换"
),
"settings-save-current-files" =>
array(
"Cannot update config..." => "不能更新配置文件. 请为",
"and try again" => "增加写入权限并再次尝试"
),
"settings-screen" =>
array(
"settings" => "设置",
"version" => "版本",
"website" => "网站",
"git" => "git",
"codemirror dir" => "codemirror 目录",
"codemirror version" => "codemirror 版本",
"file manager root" => "文件管理器的根目录ROOT",
"Free to use..." => "您可以自由使用它, 无论商业与否, 只需让我知道有任何很酷的使用或有定制的:)同样我们无任何责任和任何担保, 使用所有的责任是你的. 很多个人和公司为 ICEcoder 作出过贡献, 在此篇幅有限无法一一列举, 请访问贡献者详细列表",
"functionality" => "功能",
"check for updates..." => "启动时检查更新",
"auto open last..." => "启动时自动载入最后打开的文件",
"when finding in..." => "在查找文件时, 排除",
"assisting" => "辅助",
"code assist" => "代码辅助",
"visible tabs" => "缩进线可见",
"locked nav" => "锁定导航",
"tag wrapper command" => "标签封装命令",
"auto-complete on" => "打开自动完成",
"security" => "安全",
"new password" => "新密码",
"8 chars min" => "最少8个字符",
"confirm password" => "确认密码",
"banned files/folders" => "禁止文件 / 文件夹",
"banned paths" => "禁止路径",
"ip addresses" => "ip 地址",
"Slash prefixed comma..." => "斜线前缀, 以半角逗号分隔",
"Comma delimited" => "以半角逗号分隔",
"style" => "样式",
"theme" => "主题",
"line wrapping" => "换行",
"indent type" => "缩进类型",
"indent size" => "缩进大小",
"font size" => "字体大小",
"auto indent" => "auto indent",
"layout" => "布局",
"plugin panel aligned" => "插件板对齐",
"file manager" => "文件管理器",
"root" => "root",
"Slash prefixed" => "斜线前缀",
"bug reporting" => "错误报告",
"check in files" => "检查文件",
"every" => "任何",
"secs getting last" => "秒, 最后得到",
"lines" => "",
"multi-user" => "多用户",
"Make sure you..." => "确保你没有把自己锁了",
"Registration" => "启用注册",
"auth token" => "auth token",
"Required to get..." => "如需要得到差异列表, 提交您 GitHub 上托管的 repo 等. 如果你还没有一个, 您可以使用:".PHP_EOL.PHP_EOL.
"- 个人访问令牌 (https://help.github.com/articles/creating-an-access-token-for-command-line-use), 或".PHP_EOL.
"- 完整的客户端/机密双令牌 (http://developer.github.com/v3/oauth).".PHP_EOL.PHP_EOL.
"我们不建议您在此处设置您的令牌, 更安全的方式是当ICEcoder要求输入时将其只保存在会话中.".PHP_EOL.PHP_EOL.
"然而, 如果你在一个值得信赖和安全的环境中工作, 把它设置在这里是更有效的.",
"Sorry cannot commit..." => "抱歉, 设置不能在演示模式下提交",
"update" => "更新"
),
"settings-update" =>
array(
"Cannot update config..." => "不能更新配置文件. 请为",
"and try again" => " 增加写入权限并重新尝试",
"and press refresh" => "增加写入权限并刷新"
),
"updater" =>
array(
"Update appears to..." => "更新似乎是成功的"
)
);
?>

View File

@@ -0,0 +1,427 @@
<?php
// Traditional Chinese language translation
// by: @lzh370 (GitHub)
// lzh370@qq.com
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &amp;). Translations on right side.
$text = array(
// / [ROOT LEVEL]
"editor" =>
array(
"Click icons for..." => "<b>點擊圖標<br>求助 &amp;<br>實用信息</b>",
"server" => "伺服器",
"Server name, OS..." => "伺服器名稱, OS & IP:",
"Root" => "根目錄:",
"ICEcoder root" => "ICEcoder 根目錄:",
"PHP version" => "PHP 版本:",
"Date & time" => "日期 & 時間:",
"your device" => "你的設備",
"Browser" => "瀏覽器:",
"Your IP" => "你的 IP:",
"files" => "文件",
"Last 10 files..." => "最後10個打開的文件:",
"none" => "[none]",
"test suite" => "測試套件",
"Run unit tests" => "運行單元測試",
"dev mode" => "開發模式",
"Status" => "狀態",
"Using" => "使用",
"You can switch..." => "你可以在 lib/config__settings.php 中設置開發模式開關",
"results" => "結果"
),
"files" =>
array(
"Lock" => "鎖定",
"Refresh" => "刷新",
"ROOT" => "[ROOT]"
),
"index" =>
array(
"UPDATE INFO" => "更新信息",
"now available" => "現在可以",
"Your version is" => "你的版本是",
"Update now" => "現在更新",
"You have some..." => "你有一些未保存的更改",
"Are you sure you want to close?" => "Are you sure you want to close?",
"working" => "裝載中",
"Color picker" => "顔色選擇器",
"New File" => "新建文件",
"New Folder" => "新建文件夾",
"Upload File(s)" => "上傳文件",
"Paste" => "粘貼",
"Open" => "打開",
"Copy" => "複製",
"Duplicate" => "副本",
"Delete" => "刪除",
"Rename" => "重命名",
"View Webpage" => "預覽網頁",
"Download" => "下載",
"Properties" => "屬性",
"File" => "文件",
"Edit" => "編輯",
"Remote" => "遠程",
"Help" => "幫助",
"Save" => "保存",
"Save As" => "另存爲",
"Live Preview" => "實時預覽",
"Upload" => "上傳",
"Zip" => "壓縮",
"Print" => "打印",
"Fullscreen toggle" => "全屏切換",
"Logout" => "登出",
"Undo" => "撤銷",
"Redo" => "重做",
"Indent more" => "增加縮進",
"Indent less" => "减少縮進",
"Autocomplete" => "自動完成",
"Comment/Uncomment" => "注釋 / 清除注釋",
"Jump to Definition" => "跳轉指定行",
"Manual" => "手冊",
"Shortcuts" => "快捷鍵",
"Settings" => "選項",
"Search for selected" => "搜索選項",
"website" => "網站",
"Close all tabs" => "關閉所有選項卡",
"Alphabetize tabs" => "按字母順序排序選項卡",
// "Find" => "檢索",
// "in" => "in",
// "and" => "and",
// "replace" => "替換",
// "replace all" => "替換所有",
// "this document" => "當前文件",
// "open documents" => "打開的文件",
// "all files" => "所有文件",
// "all filenames" => "所有文件名",
"Turn on/off..." => "開啓/關閉代碼輔助",
"Code Assist" => "代碼輔助",
"Go to Line" => "轉到行",
"View" => "預覽",
"Bug reporting not active" => "錯誤報告沒有激活"
),
// /LIB
"bug-files-check" =>
array(
"Found in" => "檢索到:"
),
"file-control" =>
array(
"Sorry" => "抱歉",
"does not seem..." => "服務器上不存在",
"Sorry, could not..." => "抱歉, 不能獲取内容",
"Sorry, cannot create..." => "抱歉, 不能創建文件夾",
"Sorry, cannot copy" => "抱歉, 不能複製",
"into" => "",
"Uploaded file(s) OK" => "上傳文件完成",
"Sorry, cannot upload" => "抱歉, 不能上傳",
"Sorry, cannot upload..." => "抱歉, 演示模式不允許上傳文件",
"Sorry, cannot rename" => "抱歉, 不能重命名",
"Maybe public write..." => "也許父文件夾也需要寫入權限?",
"Sorry, cannot move" => "抱歉, 不能移動",
"Sorry, cannot save" => "抱歉, 不能保存",
"Sorry, cannot replace..." => "抱歉, 目標不能替換文本",
"Sorry, cannot change..." => "抱歉, 目標不能更改權限",
"Sorry, cannot delete..." => "抱歉, 不能刪除根級別ROOT",
"Sorry, cannot delete" => "抱歉, 不能刪除",
"Sorry, this file..." => "抱歉, 此文件已更改, 不能保存",
"Reload this file..." => "重新加載該文件, 你的版本複製到一個新文件?",
"There was a..." => "這些代碼還沒有準備好. 因此 ICEcoder 需要重新加載.",
"displayed at" => "顯示在",
"Enter filename to..." => "輸入文件名并保存到",
"That file exists..." => "該文件已存在, 要覆蓋嗎?",
"Saving" => "正在保存"
),
"get-branch" =>
array(
"There are no..." => "本地文件與 GitHub repo 沒有明顯差異. 切換回普通模式?",
"Sorry, there was..." => "抱歉, 這裏有一個錯誤, 代碼:",
"Your local folder..." => "你的本地文件夾是空的, 你是否想克隆"
),
"github-manager" =>
array(
"Sorry, cannot create..." => "抱歉, 不能創建目錄到",
"Cannot update config..." => "不能更新配置文件. 請對",
"and try again" => "增加寫入權限, 并再次嘗試",
"saving github paths" => "正在保存 github 路徑...",
"github paths" => "github 路徑",
"Choose existing path" => "選擇現有路徑",
"Local path" => "本地路徑",
"Remote GitHub path" => "遠程 GitHub 路徑",
"Choose" => "選擇",
"Set local and..." => "設置本地路徑和遠程路徑需要去除空格",
"Update" => "更新",
"Add new path" => "增加新路徑",
"Add" => "增加",
"Usage Info" => "使用方法",
"Enter relative local..." => "輸入本地相對路徑 (/server/myfiles) 和 GitHub 絕對路徑 (https://github.com/user/repo 或 https://github.com/user/repo/tree/branch 各分隻), 按照示例. 完成后你就建立了這兩個源路徑, 它應該成對數存在.",
"You can then..." => "你可以選擇一個路徑作爲 ICEcoder 的根路徑.",
"The file manager..." => "文件管理器右側會顯示一個新的GitHub圖標, 您可以點擊執行, 會自動校驗并顯示本地與github源之間的差異. 這些差異可以提交和推送到GitHub上的遠程路徑或克隆到您的本地路徑, 用來同步您的文檔.",
"If you want..." => "如果您想設置一個根路徑, 可以在 幫助 > 設置窗口 中進行設置."
),
"github" =>
array(
"Sorry, you do..." => "抱歉, 您的服務器沒有啓用 OpenSSL 的 PHP 實例, 因此 https 目前不可用. GitHub 的數據傳輸必須要用 https 連接, 請修改 php.ini 設置, 重啓您的服務器并重新嘗試"
),
"headers" =>
array(
"Bad CSRF token..." => "錯誤的 CSRF token. 請在 https://github.com/mattpass/ICEcoder 報告錯誤信息, 以便我們修復它."
),
"help" =>
array(
"shortcuts" => "快捷鍵",
"Within document" => "文檔",
"On Tabs" => "選項卡",
"Within file manager" => "文件管理器",
"Anywhere" => "其他",
"Space" => "空格",
"Click" => "單擊",
"or" => "",
"Left click" => "左鍵單擊",
"Middle click" => "中鍵單擊",
"Double click tap..." => "雙擊 / 手指點擊 (移動端)",
"Right click" => "右鍵單擊",
"Middle scrollwheel" => "中間滾輪滾動",
"Drag" => "拖動",
"Autocomplete add snippet" => "自動完成 / 添加片段",
"Multiple select" => "多選",
"Move line up" => "向上移動行",
"Move line down" => "向下移動行",
"Duplicate lines" => "復制行",
"Remove lines" => "刪除行",
"Insert line before" => "前插入行",
"Insert line after" => "后插入行",
"Search for selected" => "搜索選擇",
"Jump to definition" => "跳轉到 / 跳轉回",
"Comment uncomment" => "注釋 / 清楚注釋",
"Insert tab indent" => "插入tab / 插入選擇",
"Wrap with div" => "封裝 &lt;div&gt;",
"Wrap with span" => "封裝 &lt;span&gt;",
"Wrap unwrap p" => "封裝 / 撤銷封裝 &lt;p&gt;",
"Wrap unwrap a" => "封裝 / 撤銷封裝 &lt;a&gt;",
"Wrap unwrap b" => "封裝 / 撤銷封裝 &lt;b&gt;",
"Wrap unwrap i" => "封裝 / 撤銷封裝 &lt;i&gt;",
"Wrap unwrap strong" => "封裝 / 撤銷封裝 &lt;strong&gt;",
"Wrap unwrap em" => "封裝 / 撤銷封裝 &lt;em&gt;",
"Wrap unwrap li" => "封装 / 撤销封装 &lt;li&gt;",
"Wrap unwrap h1..." => "封裝 / 撤銷封裝 &lt;h1&gt; - &lt;h3&gt;",
"End line with..." => "換行 &lt;br&gt;",
"Close tab" => "關閉選項卡",
"Select file folder" => "選擇文件 / 文件夾",
"Open file" => "打開文件",
"Range select" => "範圍選擇",
"Options for selected" => "所選的選項",
"Delete selected" => "刪除已選",
"Next previous tab" => "下一個 / 上一個 選項卡",
"Next tab" => "下一個選項卡",
"Previous tab" => "上一個選項卡",
"New tab" => "新建選項卡",
"Close current tab" => "關閉當前選項卡",
"Open file prompt" => "打開文件的提示",
"Find" => "檢索",
"Focus on Go..." => "光標定位到轉到行的輸入框",
"Save" => "保存",
"Save as" => "另存爲...",
"View webpage" => "預覽網頁",
"Contract expand file..." => "收縮 / 擴展文件管理器",
"Fold unfold current..." => "摺叠 / 展開當前行",
"Refocus on document" => "光標重新聚焦到文檔",
"Cancel tasks" => "取消任务"
),
"ice-coder" =>
array(
"No text selected..." => "搜索中沒有選中的文件",
"Creating Folder" => "正在創建文件夾",
"Sorry you can..." => "抱歉, 衹能同時打開100個文件!",
"Opening File" => "正在打開文件",
"Enter relative file..." => "輸入本地相對路徑 (前綴 /) 或遠程 URL",
"Getting" => "正在獲取",
"Please enter the..." => "請輸入新的名稱爲",
"Renaming to" => "正在重命名",
"Moving to" => "正在移動到",
"Deleting File" => "正在刪除文件",
"Pasting File" => "正在粘貼文件",
"Sorry cannot paste..." => "抱歉, 無法粘貼到根路徑",
"Nothing to paste..." => "粘貼失敗, 請先複製一個文件 / 文件夾!",
"Replacing text in" => "正在替換文本",
"Cancelled tasks" => "取消任務",
"Open previous files" => "打開以前的文件?",
"Please enter your..." => "請輸入您的 GitHub token (允許使用個人令牌或客戶端令牌). 可以查看 Github Auth Token 的幫助 > 更多信息在 幫助 > 設置窗口",
"This will compare..." => "將比較和顯示您的本地目錄和 GitHub repo 之間的差異. 確定嗎?",
"Please note for..." => "請注意: 需要更新才能工作, 您需要爲所有 ICEcoder 文件和文件夾設置寫如何刪除權限. 如果您需要恢復 ICEcoder 到這個版本, 您可以在 /tmp 目錄找到它們. 點擊 OK 繼續使用自動升級或點擊 cancel 訪問 ICEcoder 官方網站, 您也可以到 GitHub 的項目首頁下載 zip 來手動進行更新.",
"You can start..." => "您可以在 幫助 > 設置中啓動錯誤報告",
"Error cannot find..." => "錯誤: 無法找到和進入錯誤日志文件路徑",
"No new errors..." => "沒有新的錯誤被找到",
"You have made..." => "您已做的更改未保存。您確定要關閉它而不保存嗎?",
"Close all tabs" => "是否關閉所有選項卡?"
),
"login" =>
array(
"set password" => "設置密碼",
"login" => "登錄",
"To disable registration..." => "要禁用注冊模式, 請進入選項或打開文件 lib/config___settings.php 并更改 enableRegistration 爲 false , 并重新載入本頁面",
"Registration mode enabled" => "注冊模式已啓用",
"auto-check for updates" => "自動檢測更新",
"To put into..." => "要禁用多用戶模式, 請進入選項或打開文件 lib/config___settings.php 并更改 multiUser 爲 true , 并重新載入本頁面",
"multi-user" => "多用戶"
),
"multiple-results" =>
array(
"rename all" => "重命名所有",
"replace all" => "全部替換",
"document" => "文檔",
"Found" => "找到",
"times" => "時間",
"replace" => "替換",
"file folder" => "文件 / 文件夾",
"rename to" => "重命名爲",
"rename" => "重命名",
"file" => "文件",
"No matches found" => "沒有找到匹配",
"selected" => "選擇",
"found in" => "查詢結果在",
"Replaced" => "已替換"
),
"plugins-manager" =>
array(
"ICEcoder needs to..." => "ICEcoder 需要重新加載, 這個插件才可以使用。現在刷新嗎?",
"saving plugins" => "正在保存插件...",
"Cannot update config..." => "不能更新配置文件. 請爲",
"and try again" => "設置寫入權限并刷新重試",
"couldnt delete dir" => "不能刪除目錄",
"couldnt delete file" => "不能刪除文件",
"plugins" => "插件",
"Guide to writing..." => "編寫插件指南",
"Manage Installed" => "管理已安裝",
"URL" => "URL",
"Target" => "目標",
"Timer" => "定時器",
"Update" => "更新",
"Install" => "安裝",
"Uninstall" => "卸載",
"Reload after install..." => "安裝后需要刷新"
),
"properties" =>
array(
"properties" => "屬性",
"Size" => "尺寸",
"Modified" => "修改",
"Last access" => "最近訪問",
"Type" => "類型",
"Readable Writeable" => "可讀 / 可寫",
"Relative path" => "相對路徑",
"Absolute path" => "絕對路徑",
"Contains" => "包含",
"Permissions" => "權限",
"Owner" => "所有者",
"Group" => "",
"Public" => "公衆",
"Read" => "讀取",
"Write" => "寫入",
"Execute" => "執行",
"Change to" => "更改爲",
"update" => "更新"
),
"settings-common" =>
array(
"Your document does..." => "你的文檔不是 UTF-8 編碼, 它將被轉換"
),
"settings-save-current-files" =>
array(
"Cannot update config..." => "不能更新配置文件. 請爲",
"and try again" => "增加寫入權限并再次嘗試"
),
"settings-screen" =>
array(
"settings" => "設置",
"version" => "版本",
"website" => "網站",
"git" => "git",
"codemirror dir" => "codemirror 目錄",
"codemirror version" => "codemirror 版本",
"file manager root" => "文件管理器的根目錄 ROOT",
"Free to use..." => "您可以免費使用它, 無論商業與否, 衹需讓我知道任何很酷的或有定製的:)同樣我們無任何責任和任何擔保, 使用所有的責任都是你的. 很多個人和公司爲 ICEcoder 作出過貢獻, 在此篇幅有限無法一一列舉, 請訪問貢獻者詳細列表",
"functionality" => "功能",
"check for updates..." => "啓動時檢查更新",
"auto open last..." => "啓動時自動載入最后打開的文件",
"when finding in..." => "在查找文件時, 排除",
"assisting" => "輔助",
"code assist" => "代碼輔助",
"visible tabs" => "縮進綫可見",
"locked nav" => "鎖定導航",
"tag wrapper command" => "標簽封裝命令",
"auto-complete on" => "打開自動完成",
"security" => "安全",
"new password" => "新密碼",
"8 chars min" => "至少8個字符",
"confirm password" => "確認密碼",
"banned files/folders" => "禁止文件 / 文件夾",
"banned paths" => "禁止路徑",
"ip addresses" => "ip 地址",
"Slash prefixed comma..." => "斜綫前綴, 以半角逗號分隔",
"Comma delimited" => "以半角逗號分隔",
"style" => "樣式",
"theme" => "主題",
"line wrapping" => "換行",
"indent type" => "縮進類型",
"indent size" => "縮進大小",
"font size" => "字體大小",
"auto indent" => "auto indent",
"layout" => "佈局",
"plugin panel aligned" => "插件版對齊",
"file manager" => "文件管理器",
"root" => "root",
"Slash prefixed" => "斜綫前綴",
"bug reporting" => "報告錯誤",
"check in files" => "檢查文件",
"every" => "任何",
"secs getting last" => "秒, 最後得到",
"lines" => "",
"multi-user" => "多用戶",
"Make sure you..." => "確保你沒有把自己鎖了",
"Registration" => "啓用注冊",
"auth token" => "auth token",
"Required to get..." => "如需要得到差異列表, 提交您 GitHub 上托管的 repo 等. 如果你還沒有一個, 你可以使用:".PHP_EOL.PHP_EOL.
"- 個人令牌訪問 (https://help.github.com/articles/creating-an-access-token-for-command-line-use), 或".PHP_EOL.
"- 完整的客戶端/機密雙令牌 (http://developer.github.com/v3/oauth).".PHP_EOL.PHP_EOL.
"我們不建議您在此處設置令牌, 更安全的方式是當 ICEcoder 要求輸入時將其隻保存在會話中.".PHP_EOL.PHP_EOL.
"然而, 如果你在一個信賴和安全的環境下工作, 把它設置在這裏是更有效的.",
"Sorry cannot commit..." => "抱歉, 在演示模式下不能提交設置",
"update" => "更新"
),
"settings-update" =>
array(
"Cannot update config..." => "不能更新配置文件. 請爲",
"and try again" => " 增加寫入權限并重新嘗試",
"and press refresh" => " 增加寫入權限并重新嘗試"
),
"updater" =>
array(
"Update appears to..." => "更新似乎是成功的"
)
);
?>

492
lang/dutch.php Normal file
View File

@@ -0,0 +1,492 @@
<?php
// Dutch language translation
// Door: Julian Kaagman
// @JpaKaagman (GitHub)
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &amp;). Translations on right side.
// Special chars: http://www.ascii.cl/htmlcodes.htm
$text = array(
// / [ROOT LEVEL]
"editor" =>
array(
"server" => "server",
"Server name, OS..." => "Server naam, besturingssysteem & IP:",
"Root" => "Root:",
"ICEcoder root" => "ICEcoder root:",
"PHP version" => "PHP versie:",
"Date & time" => "Datum & tijd:",
"your device" => "Uw apparaat",
"Browser" => "Browser:",
"Your IP" => "Uw IP:",
"trial remaining" => "Resterende demo tijd",
"days left" => "dagen",
"files" => "bestanden",
"Last 10 files..." => "Laatste 10 geopende bestanden:",
"none" => "[none]",
"test suite" => "test suite",
"Run unit tests" => "Voer unit tests uit",
"dev mode" => "Ontwikkelaars modus",
"Status" => "Status",
"Using" => "Gebruikt",
"You can switch..." => "U kunt de ontwikkelaars modus aan/uit zetten in lib/config__settings.php",
),
"files" =>
array(
"Lock" => "Vergrendelen",
"Refresh" => "Vernieuwen",
"Plugins" => "Plugins",
"ROOT" => "[ROOT]"
),
"index" =>
array(
"UPDATE INFO" => "UPDATE INFO",
"now available" => "nu beschikbaar",
"Your version is" => "Uw versie is",
"Update now" => "Nu updaten",
"You have some..." => "Er zijn wijzigingen die niet opgeslagen zijn",
"Are you sure..." => "Weet u zeker dat u wilt sluiten ?",
"working" => "bezig",
"Color picker" => "Kleuren kiezer",
"Plugins Manager" => "Plugin beheer",
"New File" => "Nieuw bestand",
"New Folder" => "Nieuwe map",
"Upload File(s)" => "Upload bestand(en)",
"Paste" => "Plakken",
"Open" => "Open",
"Copy" => "Kopi&euml;ren",
"Duplicate" => "Dupliceren",
"Delete" => "Verwijderen",
"Rename" => "Hernoemen",
"View Webpage" => "Bekijk webpagina",
"Download" => "Download",
"Properties" => "Eigenschappen",
"File" => "Bestand",
"Edit" => "Bewerken",
"Source" => "Bron",
"Help" => "Help",
"Save" => "Opslaan",
"Save As" => "Opslaan als",
"Live Preview" => "Voorbeeld",
"Upload" => "Upload",
"Zip" => "Zip",
"Print" => "Afdrukken",
"Fullscreen toggle" => "Schakelen volledig scherm",
"Logout" => "Uitloggen",
"Undo" => "Ongedaan maken",
"Redo" => "Opnieuw",
"Indent more" => "Rechts inspringen",
"Indent less" => "Links verspringen",
"Autocomplete" => "Automatisch aanvullen",
"Comment/Uncomment" => "Commentaar maken",
"Jump to Definition" => "Spring naar definitie",
"Manual" => "Handleiding",
"Shortcuts" => "Sneltoetsen",
"Settings" => "Opties",
"Search for selected" => "Zoek naar geselecteerd",
"website" => "website",
"Close all tabs" => "Sluit alle tabbladen",
"Alphabetize tabs" => "Sorteer tabbladen",
"Find" => "Zoek",
"in" => "in",
"and" => "en",
"replace" => "vervangen",
"replace all" => "alles vervangen",
"this document" => "dit document",
"open documents" => "open documenten",
"all files" => "alle bestanden",
"all filenames" => "alle bestandsnamen",
"Turn on/off..." => "Schakel codehulp aan/uit",
"Code Assist" => "Codehulp",
"Go to Line" => "Ga naar regel",
"View" => "Beeld",
"Bug reporting not active" => "Bug rapportage niet actief",
"Single pane" => "Enkel pane",
"Diff pane also" => "Ook diff pane"
),
// /LIB
"auto-logout-warning" =>
array(
"Auto Logout Warning" => "Auto logout waarschuwing",
"You will be..." => "U wordt uitgelogd na",
"seconds due to..." => "seconden ivm inactiviteit, voor veiligheids doeleinden. Gebruik de muis of druk op een toets om door te gaan.<br><br>U kunt deze functie aanpassen of uitschakelen in Bewerken > Opties."
),
"backup-versions" =>
array(
"backup" => "backup",
"backups" => "backups",
"available for" => "beschikbaar voor"
),
"bug-files-check" =>
array(
"Found in" => "Gevonden in:"
),
"file-control" =>
array(
"Sorry, bad filename..." => "Er is een ongeldige bestandsnaam opgegeven. Bekijk de dev tools console voor meer informatie.",
"Sorry" => "Sorry",
"does not seem..." => "bestaat niet op de server",
"Sorry, could not..." => "Het is niet mogelijk om de gegevens op te halen van",
"Sorry, cannot create..." => "Er kan geen map worden aangemaakt op",
"Sorry, cannot copy" => "Kan niet worden gekopie&euml;rd",
"into" => "naar",
"Uploaded file(s) OK" => "Ge&uuml;ploade bestand(en)",
"Sorry, cannot upload" => "Kan niet uploaden",
"Sorry, cannot upload..." => "Kan niet uploaden in de demo modus",
"Sorry, cannot rename" => "Kan niet hernoemen",
"Maybe public write..." => "Misschien zijn er publieke schrijfrechten nodig voor deze, of de bovenliggende map?",
"Sorry, cannot move" => "Kan niet worden verplaatst",
"Sorry, cannot save" => "Kan niet opslaan",
"Sorry, cannot replace..." => "Kan geen tekst vervangen in",
"Sorry, cannot change..." => "Kan de rechten niet wijzigen voor",
"Sorry, cannot delete more..." => "U kunt niet meer dan een bestand tegelijkertijd verwijderen in FTP modus",
"Sorry, cannot delete..." => "Kan de root level niet verwijderen",
"Sorry, cannot delete" => "Kan niet verwijderd worden",
"Sorry, this file..." => "Het bestand is gewijzigd, maar kan niet worden opgeslagen",
"Reload this file..." => "Vernieuw dit bestand en kopieer de huidige versie naar een nieuw bestand?",
"There was a..." => "Er was een technisch probleem, mogelijk was er iets niet gereed. ICEcodeer heeft bestandsbeheer opnieuw geladen.",
"displayed at" => "weergegeven op",
"Enter filename to..." => "Voer een bestandsnaam in om het op te slaan op",
"That file exists..." => "Dit bestand bestaat al, overschrijven?",
"Saving" => "Opslaan"
),
"get-branch" =>
array(
"There are no..." => "Er zijn geen verschillen aangetroffen tussen de lokale en de Github repo. Wilt u terug schakelen naar de normale modus?",
"Sorry, there was..." => "Sorry, er is een fout opgetreden, foutcode:",
"Your local folder..." => "Uw lokale map is leeg, wilt u de inhoud klonen"
),
"github-manager" =>
array(
"Sorry, cannot create..." => "Sorry, kan geen map aanmaken op",
"Cannot update config..." => "Kan het configuratie bestand niet updaten. Zet alstublieft eerst publieke schrijfrechten aan",
"and try again" => "en probeer het opnieuw",
"saving github paths" => "opslaan Github paden...",
"github paths" => "Github paden",
"Choose existing path" => "Kies een bestaand pad",
"Local path" => "Lokaal pad",
"Slash prefixed" => "Slash prefix",
"Remote GitHub path" => "Extern Github pad",
"Absolute URL beginning..." => "Absolute link, beginnend met https://github.com",
"Choose" => "Kies",
"Set local and..." => "Maak het lokale en externe pad leeg, om te verwijderen",
"Update" => "Update",
"Add new path" => "Nieuw pad toevoegen",
"Add" => "Toevoegen",
"Usage Info" => "Gebruiks Info:",
"Enter relative local..." => "Voer relatieve lokale paden (bv /server/mijnbestanden) en absolute Github paden (bv https://github.com/user/repo of https://github.com/user/repo/tree/branch voor vertakkingen (branches)), zoals het voorbeeld. Als je dit doet worden de bron paden op beide locaties gevestigd als een paar.",
"You can then..." => "You can then choose a path pair and this then becomes your new root path in ICEcoder.",
"The file manager..." => "The file manager then displays a new GitHub icon, which you can click on to perform and show a diff check between the 2 sources. These diffs can then be committed and pushed to the remote path at GitHub or cloned to your local path, to sync your files.",
"If you want..." => "Als je een ander root pad wilt instellen kan je dit doen in Bewerken > Opties."
),
"github" =>
array(
"Sorry, you do..." => "Sorry, het lijkt erop dat U OpenSSL niet beschikbaar heeft op uw server, https is dus niet beschikbaar. Dit is nodig voor GitHub gegevensoverdracht. Wijzig uw php.ini instellingen en herstart uw server en probeer opnieuw."
),
"headers" =>
array(
"Bad CSRF token..." => "Foute CSRF token. Graag de fout informatie delen op https://github.com/mattpass/ICEcoder zodat het kan worden opgelost."
),
"help" =>
array(
"shortcuts" => "Sneltoetsen",
"Within document" => "Binnen het document",
"On Tabs" => "Op Tabs",
"Within file manager" => "Binnen bestandsbeheer",
"Anywhere" => "Overal",
"Space" => "Spatie",
"Click" => "Klik",
"or" => "of",
"Left click" => "Linker muisklik",
"Middle click" => "Middelste muisklik",
"Double click tap..." => "Dubbel klikken / tap (mobiele apparatuur)",
"Right click" => "Rechter muisklik",
"Middle scrollwheel" => "Midden scrollwiel",
"Drag" => "Slepen",
"Autocomplete add snippet" => "Aanvullen / toevoegen snippet",
"Multiple select" => "Multi selecteren",
"Move line up" => "Verplaats regel omhoog",
"Move line down" => "Verplaats regel omlaag",
"Duplicate lines" => "Kopieer regel(s)",
"Remove lines" => "Verwijder regel(s)",
"Insert line before" => "Regel invoegen voor",
"Insert line after" => "Regel invoegen na",
"Search for selected" => "Zoek naar geselecteerd",
"Jump to definition" => "Spring naar definitie / spring terug",
"Comment uncomment" => "Commentaar (ongedaan) maken",
"Insert tab indent" => "Invoegen tab / verspringen geselecteerd",
"Insert more" => "Inspringen verruimen",
"Insert less" => "Inspringen verkleinen",
"Wrap with div" => "Omhullen met &lt;div&gt;",
"Wrap with span" => "Omhullen met &lt;span&gt;",
"Wrap unwrap p" => "Omhullen / onthullen met &lt;p&gt;",
"Wrap unwrap a" => "Omhullen / onthullen met &lt;a&gt;",
"Wrap unwrap b" => "Omhullen / onthullen met &lt;b&gt;",
"Wrap unwrap i" => "Omhullen / onthullen met &lt;i&gt;",
"Wrap unwrap strong" => "Omhullen / onthullen met &lt;strong&gt;",
"Wrap unwrap em" => "Omhullen / onthullen met &lt;em&gt;",
"Wrap unwrap li" => "Omhullen / onthullen met &lt;li&gt;",
"Wrap unwrap h1..." => "Omhullen / onthullen met &lt;h1&gt; - &lt;h3&gt;",
"End line with..." => "Eindig regel met &lt;br&gt;",
"Close tab" => "Sluit tab",
"Select file folder" => "Selecteer bestand / map",
"Open file" => "Open bestand",
"Range select" => "Selecteer bereik",
"Options for selected" => "Opties voor geselecteerd",
"Delete selected" => "Verwijder geselecteerde",
"Next previous tab" => "Volgende / vorige tab",
"Next tab" => "Volgende tab",
"Previous tab" => "Vorige tab",
"New tab" => "Nieuw tab",
"Close current tab" => "Sluit huidige tab",
"Open file prompt" => "Open bestands prompt",
"Find" => "Zoek",
"Previous" => "Vorige",
"Focus on Go..." => "Focus op ga naar regel invoer",
"Save" => "Opslaan",
"Save as" => "Opslaan als...",
"View webpage" => "Bekijk webpagina",
"Contract expand file..." => "Inklappen / uitklappen bestandsbeheer",
"Fold unfold current..." => "Vouwen / uitvouwen huidige regel",
"Refocus on document" => "Herfocus op document",
"Cancel tasks" => "Annuleer taken"
),
"ice-coder" =>
array(
"results" => "resultaten",
"No text selected..." => "Geen tekst geselecteerd om te zoeken",
"all files" => "alle bestanden",
"all filenames" => "alle bestandsnamen",
"selected files" => "geselecteerde bestanden",
"selected filenames" => "geselecteerde bestandsnamaen",
"Creating Folder" => "Aanmaken map",
"Sorry you can..." => "Sorry, je kan maximaal 100 bestanden open hebben staan!",
"Opening File" => "Openen bestand",
"Enter relative file..." => "Geef relatieve bestands pad (voorafgaand door een slash) of een externe URL",
"Getting" => "Ophalen",
"Saving" => "Opslaan:",
"Please enter the..." => "Voer de nieuwe naam in voor",
"Renaming to" => "Hernoemen naar",
"Moving to" => "Verplaatsen naar",
"Deleting File" => "Bestand verwijderen",
"Pasting File" => "Bestand plakken",
"Sorry cannot paste..." => "Sorry, kan niet de gehele root plakken",
"Nothing to paste..." => "Er is niets om te plakken, kopieer eerst een bestand of map!",
"and" => "en",
"this document" => "dit bestand",
"replace" => "vervang",
"replace all" => "vervang alle",
"file" => "bestand",
"Replacing text in" => "Wijzig de tekst in",
"Sorry there was..." => "Helaas er is een fout opgetreden met uw aanvraag.\\n\\nKijk in de dev tools console voor meer informatie.",
"Cancelled tasks" => "Geannuleerde taken",
"Open previous files" => "Open voorgaande bestand(en)?",
"Please enter your..." => "Voer alstublieft uw GitHub token (personal access token of client/secret pair token). Zie ook de tooltip bij Github Auth Token binnen Bewerken > Opties voor meer informatie.",
"This will compare..." => "Er zullen vergelijkingen en veranderingen worden getoond tussen uw lokale map en de repo. Ok?",
"Please note for..." => "Let op: om de update goed te laten doorvoeren, moet je schrijfrechten hebben op alle bestanden en mappen van ICEcoder. Moet je deze versie van ICEcoder herstellen, dan vind je die in de map /tmp. Klik op ok om door te gaan met automatisch updaten, of druk op annuleren om af te breken. Voor een handmatige update kun je het zip bestand van de ICEcoder website downloaden.",
"You can start..." => "U kunt bug rapporteren aanzetten in: Bewerken > Opties",
"Error cannot find..." => "Fout: kan geen toegang krijgen of de bestands paden vinden",
"No new errors..." => "Geen nieuwe fouten gevonden",
"You have made..." => "Er zijn wijzigingen aangetroffen. Wilt u verder gaan zonder op te slaan?",
"Close all tabs" => "Sluit alle tabbladen?"
),
"login" =>
array(
"set password" => "sla wachtwoord op",
"login" => "login",
"To disable registration..." => "Om de registratie modus uit te zetten, open het menu opties of open lib/config___settings.php en wijzig enableRegistration naar false",
"Registration mode enabled" => "Registratie modus aan",
"disable further registrations" => "uitschakelen van verdere registraties",
"auto-check for updates" => "automatisch controleren op updates",
"To put into..." => "Om de multi-user modus te gebruiken, open het menu opties of open lib/config___settings.php en verander multiUser naar true",
"multi-user" => "multi-user"
),
"multiple-results" =>
array(
"rename all" => "hernoem alles",
"replace all" => "vervang alles",
"document" => "bestand",
"Found" => "Gevonden",
"times" => "keer",
"replace" => "vervang",
"file folder" => "bestand/map",
"rename to" => "hernoemen naar",
"rename" => "hernoemen",
"file" => "bestand",
"No matches found" => "Geen overeenkomsten gevonden",
"selected" => "geselecteerd",
"found in" => "gevonden in",
"Replaced" => "Vervangen"
),
"plugins-manager" =>
array(
"ICEcoder needs to..." => "ICEcoder moet opnieuw worden geladen om deze plug-in te gebruiken. Nu opnieuw laden?",
"saving plugins" => "opslaan plug-ins...",
"Cannot update config..." => "Kan het configuratie bestand niet updaten. Zet alstublieft eerst publieke schrijfrechten aan",
"and try again" => "en probeer het opnieuw",
"couldnt delete dir" => "kan de map niet verwijderen",
"couldnt delete file" => "kan bestand niet verwijderen",
"plugins" => "plug-ins",
"Guide to writing..." => "Gids om plug-ins te schrijven",
"Manage Installed" => "Beheer ge&Iuml;nstalleerd",
"URL" => "URL",
"Target" => "Doel",
"Timer" => "Timer",
"Update" => "Update",
"Install" => "Installeren",
"Uninstall" => "De&Iuml;nstalleren",
"Reload after install..." => "Opnieuw laden na installatie vereist"
),
"properties" =>
array(
"properties" => "eigenschappen",
"Size" => "Groote",
"Modified" => "Aangepast",
"Last access" => "Laatst geopend",
"Type" => "Type",
"Readable Writeable" => "Leesbaar / Schrijfbaar",
"Relative path" => "Relatief pad",
"Absolute path" => "Absoluut pad",
"Contains" => "Bevat",
"Permissions" => "Rechten",
"Owner" => "Eigenaar",
"Group" => "Groep",
"Public" => "Publiek",
"Read" => "Lezen",
"Write" => "Schrijven",
"Execute" => "Uitvoeren",
"Change to" => "Veranderen naar",
"update" => "update"
),
"settings-common" =>
array(
"Your document does..." => "Het bleek dat uw bestand niet gebruik maakte van UTF-8 codering, dus is het geconverteerd"
),
"settings-save-current-files" =>
array(
"Cannot update config..." => "Kan het configuratie bestand niet updaten. Zet alstublieft eerst publieke schrijfrechten aan",
"and try again" => "en probeer het opnieuw"
),
"settings-screen" =>
array(
"settings" => "instellingen",
"version" => "versie",
"website" => "website",
"git" => "git",
"codemirror dir" => "codemirror map",
"codemirror version" => "codemirror versie",
"file manager root" => "bestandsbeheer root",
"backups" => "backups",
"keep version control..." => "gebruik versiebeheer backups voor",
"day" => "dag",
"days" => "dagen",
"of backups stored..." => "of backups stored currently",
"Get in contact..." => "Kom in contact via...",
"You may use..." => "Vrij voor eigen gebruik, commercieel of persoonlijk. Laat het ons weten als je toffe aanpassingen maakt :)<br><br>Wij zijn niet aansprakelijk en bieden geen garantie, gebruik op eigen risico.",
"functionality" => "functionaliteit",
"check for updates..." => "check voor updates bij laden",
"auto open last..." => "automatisch openen laatst geopende bestanden na inloggen",
"when finding in..." => "Uitgesloten bestand typen",
"assisting" => "assisteren",
"code assist" => "codehulp",
"visible tabs" => "zichtbare tabs",
"locked nav" => "vergrendelde nav",
"tag wrapper command" => "tag wrapper command",
"auto-complete on" => "automatisch aanvullen",
"security" => "beveiliging",
"new password" => "nieuw wachtwoord",
"8 chars min" => "minimaal 8 tekens",
"confirm password" => "herhaal wachtwoord",
"banned files/folders" => "uitgesloten bestanden/mappen",
"banned paths" => "uitgesloten paden",
"ip addresses" => "ip adressen",
"auto-logout after" => "auto-logout na",
"mins of inactivity..." => "minuten in actief, tenzij er niet opgeslagen bestanden geopend zijn",
"Slash prefixed comma..." => "Slash prefixed, komma gescheiden",
"Comma delimited" => "komma gescheiden",
"style" => "style",
"theme" => "thema",
"line wrapping" => "regel omslag",
"line numbers" => "regel nummers",
"indent type" => "inspring type",
"indent size" => "inspring size",
"match brackets" => "match brackets",
"show trailing space" => "show trailing space",
"font size" => "lettergrootte",
"auto indent" => "automatisch inspringen",
"auto close tags" => "automatisch tags sluiten",
"auto close brackets" => "automatsich brackets sluiten",
"layout" => "lay-out",
"plugin panel aligned" => "plug-in paneel positie",
"file manager" => "bestandsbeheer",
"root" => "root",
"Set 0 to..." => "Set 0 to disable",
"Slash prefixed" => "Slash prefixed",
"bug reporting" => "bug rapportage",
"check in files" => "check in bestanden",
"every" => "elke",
"secs getting last" => "seconde, verstuur laatste",
"lines" => "regels",
"multi-user" => "multi-user",
"Make sure you..." => "Zorg ervoor dat je niet jezelf buitensluit",
"Registration" => "Registratie",
"auth token" => "auth token",
"Required to get..." => "Required to get diffs, commit to your GitHub hosted repo etc. If you do not have one, you can use a:".PHP_EOL.PHP_EOL.
"- personal access token (https://help.github.com/articles/creating-an-access-token-for-command-line-use), or".PHP_EOL.
"- full client/secret pair token (http://developer.github.com/v3/oauth).".PHP_EOL.PHP_EOL.
"It is not recommended you set your token here however and is more secure to enter it when requested by ICEcoder as that will keep it in session only.".PHP_EOL.PHP_EOL.
"However, if you work in a trusted and secure environment, it is more efficient to set it here.",
"Sorry cannot commit..." => "Sorry, cannot commit settings in demo mode",
"update" => "update"
),
"settings-update" =>
array(
"Cannot update config..." => "Kan het configuratie bestand niet updaten. Zet alstublieft eerst publieke schrijfrechten aan",
"and try again" => "probeer het opnieuw",
"and press refresh" => "en druk vernieuwen"
),
"updater" =>
array(
"Update appears to..." => "Update succesvol uitgevoerd!"
),
"find-in-files" =>
array(
"Enter path to search in" => "Voer het door te zoeken pad in",
"Enter semicolon-separated masks of files to look at (e.g. *.php;*.html;*.js)" => "Voer de te zoeken bestandstypen in, en scheid deze met een puntcomma (bijvoorbeeld: *.php;*.html;*.js)",
"Type of text" => "Type tekst",
"Fixed text" => "Fixed tekst",
"Regular expression" => "Reguliere expressie",
"Case sensitive" => "Hoofdletter gevoelig",
"Yes" => "Ja",
"No" => "Nee",
"Search" => "Zoek",
)
);
?>

524
lang/english.php Normal file
View File

@@ -0,0 +1,524 @@
<?php
// English language translation
// by: @mattpass (GitHub)
// @mattpass (Twitter)
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &amp;). Translations on right side.
$text = array(
// / [ROOT LEVEL]
"editor" =>
array(
"server" => "server",
"Server name, OS..." => "Server name, OS & IP:",
"Root" => "Root:",
"ICEcoder root" => "ICEcoder root:",
"PHP version" => "PHP version:",
"Date & time" => "Date & time:",
"your device" => "your device",
"Browser" => "Browser:",
"Your IP" => "Your IP:",
"trial remaining" => "trial remaining",
"days left" => "days left",
"files" => "files",
"Last 10 files..." => "Last 10 files opened:",
"none" => "[none]",
"test suite" => "test suite",
"Run unit tests" => "Run unit tests",
"dev mode" => "dev mode",
"Status" => "Status",
"Using" => "Using",
"You can switch..." => "You can switch dev mode on/off in lib/config__settings.php"
),
"files" =>
array(
"Lock" => "Lock",
"Refresh" => "Refresh",
"Plugins" => "Plugins",
"ROOT" => "[ROOT]"
),
"index" =>
array(
"UPDATE INFO" => "UPDATE INFO",
"now available" => "now available",
"Your version is" => "Your version is",
"Update now" => "Update now",
"You have some..." => "You have some unsaved changes",
"Are you sure..." => "Are you sure you want to close?",
"working" => "working",
"Color picker" => "Color picker",
"Plugins Manager" => "Plugins Manager",
"New File" => "New File",
"New Folder" => "New Folder",
"Upload File(s)" => "Upload File(s)",
"Paste" => "Paste",
"Open" => "Open",
"Copy" => "Copy",
"Duplicate" => "Duplicate",
"Delete" => "Delete",
"Rename" => "Rename",
"View Webpage" => "View Webpage",
"Download" => "Download",
"Properties" => "Properties",
"File" => "File",
"Edit" => "Edit",
"Source" => "Source",
"Help" => "Help",
"Save" => "Save",
"Save As" => "Save As",
"Live Preview" => "Live Preview",
"Upload" => "Upload",
"Zip" => "Zip",
"Print" => "Print",
"Fullscreen toggle" => "Fullscreen toggle",
"Logout" => "Logout",
"Undo" => "Undo",
"Redo" => "Redo",
"Indent more" => "Indent more",
"Indent less" => "Indent less",
"Autocomplete" => "Autocomplete",
"Comment/Uncomment" => "Comment/Uncomment",
"Jump to Definition" => "Jump to Definition",
"Manual" => "Manual",
"Shortcuts" => "Shortcuts",
"Settings" => "Settings",
"Search for selected" => "Search for selected",
"website" => "website",
"Close all tabs" => "Close all tabs",
"Alphabetize tabs" => "Alphabetize tabs",
"Find" => "Find",
"in" => "in",
"and" => "and",
"replace" => "replace",
"replace all" => "replace all",
"this document" => "this document",
"open documents" => "open documents",
"all files" => "all files",
"all filenames" => "all filenames",
"Turn on/off..." => "Turn on/off code assist",
"Code Assist" => "Code Assist",
"Go to Line" => "Go to Line",
"View" => "View",
"Bug reporting not active" => "Bug reporting not active",
"Single pane" => "Single pane",
"Diff pane also" => "Diff pane also"
),
// /LIB
"auto-logout-warning" =>
array(
"Auto Logout Warning" => "Auto logout warning",
"You will be..." => "You will be logged out after",
"seconds due to..." => "seconds due to inactivity, for security purposes. Use the mouse or hit a key to continue.<br><br>You can adjust or disable this from the Edit > Settings section."
),
"backup-versions" =>
array(
"backup" => "backup",
"backups" => "backups",
"available for" => "available for"
),
"bug-files-check" =>
array(
"Found in" => "Found in:"
),
"file-control" =>
array(
"Sorry, bad filename..." => "Sorry, bad filename provided. Check the dev tools console for more info?",
"Sorry" => "Sorry",
"does not seem..." => "does not seem to exist on the server",
"Sorry, could not..." => "Sorry, could not get contents of",
"Sorry, cannot create..." => "Sorry, cannot create folder at",
"Sorry, cannot copy" => "Sorry, cannot copy",
"into" => "into",
"Uploaded file(s) OK" => "Uploaded file(s) OK",
"Sorry, cannot upload" => "Sorry, cannot upload",
"Sorry, cannot upload..." => "Sorry, cannot upload whilst in demo mode",
"Sorry, cannot rename" => "Sorry, cannot rename",
"Maybe public write..." => "Maybe public write permissions needed on this or parent folder?",
"Sorry, cannot move" => "Sorry, cannot move",
"Sorry, cannot save" => "Sorry, cannot save",
"Sorry, cannot replace..." => "Sorry, cannot replace text in",
"Sorry, cannot change..." => "Sorry, cannot change permissions on",
"Sorry, cannot delete more..." => "Sorry, cannot delete more then one item at a time under FTP mode",
"Sorry, cannot delete..." => "Sorry, cannot delete the root level",
"Sorry, cannot delete" => "Sorry, cannot delete",
"Sorry, this file..." => "Sorry, this file has changed outside of ICEcoder, cannot save",
"Reload this file..." => "Reload this file and copy your version to a diff pane?\\\\n(left side = file from server, right side = unsaved file)",
"There was a..." => "There was a tech hiccup, likely something was not quite ready. So ICEcoder reloaded its file control again.",
"displayed at" => "displayed at",
"Enter filename to..." => "Enter filename to save at",
"That file exists..." => "That file exists already, overwrite?",
"Saving" => "Saving"
),
"ftp-manager" =>
array(
"Saving FTP sites" => "Saving FTP sites",
"Cannot update config..." => "Cannot update config file. Please set public write permissions on",
"and try again" => "and try again",
"ftp manager" => "ftp manager",
"Choose existing site" => "Choose existing site",
"Are you sure..." => "Are you sure you wish to remove this site?",
"Add new site" => "Add new site",
"Edit site" => "Edit site",
"Site base" => "Site base",
"Host" => "Host",
"Username" => "Username",
"Password" => "Password",
"PASV and mode" => "PASV and mode",
"Root" => "Root",
"eg http://yourdomain.com" => "eg http://yourdomain.com",
"eg ftp.yourdomain.com" => "eg ftp.yourdomain.com",
"eg user123" => "eg user123",
"eg pass123" => "eg pass123",
"Use PASV mode..." => "Use PASV mode if your FTP site requires it and choose the data transfer type - ASCII or binary",
"eg /htdocs" => "eg /htdocs",
"PASV connection off" => "PASV connection off",
"PASV connection on" => "PASV connection on",
"ASCII transfer" => "ASCII transfer",
"Binary transfer" => "Binary transfer",
"Add" => "Add",
"Choose" => "Choose",
"Update" => "Update"
),
"get-branch" =>
array(
"There are no..." => "There are no differences between the local and GitHub repo. Switch back to regular mode?",
"Sorry, there was..." => "Sorry, there was an error, code:",
"Your local folder..." => "Your local folder is empty, would you like to clone"
),
"github-manager" =>
array(
"Sorry, cannot create..." => "Sorry, cannot create folder at",
"Cannot update config..." => "Cannot update config file. Please set public write permissions on",
"and try again" => "and try again",
"saving github paths" => "saving github paths...",
"github paths" => "github paths",
"Choose existing path" => "Choose existing path",
"Local path" => "Local path",
"Slash prefixed" => "Slash prefixed",
"Remote GitHub path" => "Remote GitHub path",
"Absolute URL beginning..." => "Absolute URL, beginning https://github.com",
"Choose" => "Choose",
"Set local and..." => "Set local and remote path to blank to remove",
"Update" => "Update",
"Add new path" => "Add new path",
"Add" => "Add",
"Usage Info" => "Usage Info:",
"Enter relative local..." => "Enter relative local paths (eg /server/myfiles) and absolute GitHub paths (eg https://github.com/user/repo or https://github.com/user/repo/tree/branch for branches), as per the examples. With this done you have established the source paths at both locations, as a pair.",
"You can then..." => "You can then choose a path pair and this then becomes your new root path in ICEcoder.",
"The file manager..." => "The file manager then displays a new GitHub icon, which you can click on to perform and show a diff check between the 2 sources. These diffs can then be committed and pushed to the remote path at GitHub or cloned to your local path, to sync your files.",
"If you want..." => "If you want to set another root path, this can be done in the Settings screen."
),
"github" =>
array(
"Sorry, you do..." => "Sorry, you do not appear to have OpenSSL loaded on your PHP instance, so https is not available. This is required for GitHub data transfer, please amend php.ini settings, restart your server and try again"
),
"headers" =>
array(
"Bad CSRF token..." => "Bad CSRF token. Please report the error info at https://github.com/mattpass/ICEcoder so it can be fixed."
),
"help" =>
array(
"shortcuts" => "shortcuts",
"Within document" => "Within document",
"On Tabs" => "On Tabs",
"Within file manager" => "Within file manager",
"Anywhere" => "Anywhere",
"Space" => "Space",
"Click" => "Click",
"or" => "or",
"Left click" => "Left click",
"Middle click" => "Middle click",
"Double click tap..." => "Double click / tap (mobile)",
"Right click" => "Right click",
"Middle scrollwheel" => "Middle scrollwheel",
"Drag" => "Drag",
"Autocomplete add snippet" => "Autocomplete / add snippet",
"Multiple select" => "Multiple select",
"Move line up" => "Move line up",
"Move line down" => "Move line down",
"Duplicate lines" => "Duplicate line(s)",
"Remove lines" => "Remove line(s)",
"Insert line before" => "Insert line before",
"Insert line after" => "Insert line after",
"Search for selected" => "Search for selected",
"Jump to definition" => "Jump to definition / jump back",
"Comment uncomment" => "Comment / uncomment",
"Insert tab indent" => "Insert tab / auto indent selected",
"Insert more" => "Indent more",
"Insert less" => "Indent less",
"Wrap with div" => "Wrap with &lt;div&gt;",
"Wrap with span" => "Wrap with &lt;span&gt;",
"Wrap unwrap p" => "Wrap / unwrap with &lt;p&gt;",
"Wrap unwrap a" => "Wrap / unwrap with &lt;a&gt;",
"Wrap unwrap b" => "Wrap / unwrap with &lt;b&gt;",
"Wrap unwrap i" => "Wrap / unwrap with &lt;i&gt;",
"Wrap unwrap strong" => "Wrap / unwrap with &lt;strong&gt;",
"Wrap unwrap em" => "Wrap / unwrap with &lt;em&gt;",
"Wrap unwrap li" => "Wrap / unwrap with &lt;li&gt;",
"Wrap unwrap h1..." => "Wrap / unwrap with &lt;h1&gt; - &lt;h3&gt;",
"End line with..." => "End line with &lt;br&gt;",
"Close tab" => "Close tab",
"Select file folder" => "Select file / folder",
"Open file" => "Open file",
"Range select" => "Range select",
"Options for selected" => "Options for selected",
"Delete selected" => "Delete selected",
"Next previous tab" => "Next / previous tab",
"Next tab" => "Next tab",
"Previous tab" => "Previous tab",
"New tab" => "New tab",
"Close current tab" => "Close current tab",
"Open file prompt" => "Open file prompt",
"Find" => "Find",
"Previous" => "Previous",
"Focus on Go..." => "Focus on Go to line input",
"Save" => "Save",
"Save as" => "Save as...",
"View webpage" => "View webpage",
"Contract expand file..." => "Contract / expand file manager",
"Fold unfold current..." => "Fold / unfold current line",
"Refocus on document" => "Refocus on document",
"Cancel tasks" => "Cancel tasks"
),
"ice-coder" =>
array(
"results" => "results",
"No text selected..." => "No text selected to search on",
"all files" => "all files",
"all filenames" => "all filenames",
"selected files" => "selected files",
"selected filenames" => "selected filenames",
"Creating Folder" => "Creating Folder",
"Sorry you can..." => "Sorry, you can only have 100 files open at a time!",
"Opening File" => "Opening File",
"Enter relative file..." => "Enter relative file path (prefixed with /) or remote URL\\nYou can enter \\n'/path/file:123' or \\n'/path/file(123)' or \\n'/path/file.ext line 123' \\nto go directly to particular line",
"Getting" => "Getting",
"Saving" => "Saving:",
"Please enter the..." => "Please enter the new name for",
"Renaming to" => "Renaming to",
"Moving to" => "Moving to",
"Deleting File" => "Deleting File",
"Pasting File" => "Pasting File",
"Sorry cannot paste..." => "Sorry, cannot paste a whole root",
"Nothing to paste..." => "Nothing to paste, copy a file/folder first!",
"and" => "and",
"this document" => "this document",
"replace" => "replace",
"replace all" => "replace all",
"file" => "file",
"Replacing text in" => "Replacing text in",
"Sorry there was..." => "Sorry, there was an error with your request.\\n\\nPlease check your dev tools console for more info.",
"Cancelled tasks" => "Cancelled tasks",
"Open previous files" => "Open previous files?",
"Please enter your..." => "Please enter your GitHub token (either personal access token or client/secret pair token). See tooltip next to Github Auth Token on Help > Settings screen for more info",
"This will compare..." => "This will compare and show a diff view between your local dir and the repo. OK?",
"Please note for..." => "Please note: for updating to work properly, you need to have write access on all ICEcoder dirs & files. It will first check if this is the case and list any unwriteable (and therefore unmoveable) files.\\n\\nIf you need to recover this version of ICEcoder for any reason, you'll find it in the /tmp dir.\\n\\nClick OK to proceed with the check and auto-update, or cancel to visit the ICEcoder site so you can grab the zip and update manually.",
"You can start..." => "You can start bug reporting in Help > Settings",
"Error cannot find..." => "Error: cannot find/access the error file paths",
"No new errors..." => "No new errors found",
"You have made..." => "You have made changes. Are you sure you want to close without saving?",
"Close all tabs" => "Close all tabs?"
),
"login" =>
array(
"set password" => "set password",
"login" => "login",
"To disable registration..." => "To disable registration mode, open the settings menu or open lib/config___settings.php and change enableRegistration to false then reload this page",
"Registration mode enabled" => "Registration mode enabled",
"disable further registrations" => "disable further registrations",
"auto-check for updates" => "auto-check for updates",
"To put into..." => "To put into multi-user mode, open the settings menu or open lib/config___settings.php and change multiUser to true then reload this page",
"multi-user" => "multi-user"
),
"multiple-results" =>
array(
"rename all" => "rename all",
"replace all" => "replace all",
"document" => "document",
"Found" => "Found",
"times" => "times",
"replace" => "replace",
"file folder" => "file/folder",
"rename to" => "rename to",
"rename" => "rename",
"file" => "file",
"No matches found" => "No matches found",
"selected" => "selected",
"found in" => "found in",
"Replaced" => "Replaced"
),
"plugins-manager" =>
array(
"ICEcoder needs to..." => "ICEcoder needs to reload to make this plugin usable. Reload now?",
"saving plugins" => "saving plugins...",
"Cannot update config..." => "Cannot update config file. Please set public write permissions on",
"and try again" => "and try again",
"couldnt delete dir" => "could not delete dir",
"couldnt delete file" => "could not delete file",
"plugins" => "plugins",
"Guide to writing..." => "Guide to writing plugins",
"Manage Installed" => "Manage Installed",
"URL" => "URL",
"Target" => "Target",
"Timer" => "Timer",
"Update" => "Update",
"Install" => "Install",
"Uninstall" => "Uninstall",
"Reload after install..." => "Reload after install required"
),
"properties" =>
array(
"properties" => "properties",
"Size" => "Size",
"Modified" => "Modified",
"Last access" => "Last access",
"Type" => "Type",
"Readable Writeable" => "Readable / Writeable",
"Relative path" => "Relative path",
"Absolute path" => "Absolute path",
"Contains" => "Contains",
"Permissions" => "Permissions",
"Owner" => "Owner",
"Group" => "Group",
"Public" => "Public",
"Read" => "Read",
"Write" => "Write",
"Execute" => "Execute",
"Change to" => "Change to",
"update" => "update"
),
"settings-common" =>
array(
"Your document does..." => "Your document does not appear to be in UTF-8 encoding so has been converted"
),
"settings-save-current-files" =>
array(
"Cannot update config..." => "Cannot update config file. Please set public write permissions on",
"and try again" => "and try again"
),
"settings-screen" =>
array(
"settings" => "settings",
"version" => "version",
"website" => "website",
"git" => "git",
"codemirror dir" => "codemirror dir",
"codemirror version" => "codemirror version",
"file manager root" => "file manager root",
"backups" => "backups",
"keep version control..." => "keep version control backups for",
"day" => "day",
"days" => "days",
"of backups stored..." => "of backups stored currently",
"deleting actually moves..." => "deleting actually moves to ICEcoder's tmp dir",
"local/server items..." => "local/server items only",
"Get in contact..." => "Get in contact by...",
"You may use..." => "You may use ICEcoder for your own purposes, commercial or not, just let us know of any cool uses or customisations. :)<br><br>No warranty or liability accepted for anything, all responsibility of use is your own.",
"functionality" => "functionality",
"check for updates..." => "check for updates on load",
"auto open last..." => "auto open last files on login",
"when finding in..." => "when finding in files, exclude",
"assisting" => "assisting",
"code assist" => "code assist",
"visible tabs" => "visible tabs",
"locked nav" => "locked nav",
"tag wrapper command" => "tag wrapper command",
"auto-complete on" => "auto-complete on",
"security" => "security",
"new password" => "new password",
"8 chars min" => "8 chars min",
"confirm password" => "confirm password",
"banned files/folders" => "banned files/folders",
"banned paths" => "banned paths",
"ip addresses" => "ip addresses",
"auto-logout after" => "auto-logout after",
"mins of inactivity..." => "mins of inactivity if no unsaved files",
"Slash prefixed comma..." => "Slash prefixed, comma delimited",
"Comma delimited" => "Comma delimited",
"style" => "style",
"theme" => "theme",
"line wrapping" => "line wrapping",
"line numbers" => "line numbers",
"indent type" => "indent type",
"indent size" => "indent size",
"match brackets" => "match brackets",
"show trailing space" => "show trailing space",
"font size" => "font size",
"auto indent" => "auto indent",
"auto close tags" => "auto close tags",
"auto close brackets" => "auto close brackets",
"layout" => "layout",
"plugin panel aligned" => "plugin panel aligned",
"file manager" => "file manager",
"root" => "root",
"Set 0 to..." => "Set 0 to disable",
"Slash prefixed" => "Slash prefixed",
"bug reporting" => "bug reporting",
"check in files" => "check in files",
"every" => "every",
"secs getting last" => "secs, getting last",
"lines" => "lines",
"multi-user" => "multi-user",
"Make sure you..." => "Make sure you do not lock yourself out",
"Registration" => "Registration",
"auth token" => "auth token",
"Required to get..." => "Required to get diffs, commit to your GitHub hosted repo etc. If you do not have one, you can use a:".PHP_EOL.PHP_EOL.
"- personal access token (https://help.github.com/articles/creating-an-access-token-for-command-line-use), or".PHP_EOL.
"- full client/secret pair token (http://developer.github.com/v3/oauth).".PHP_EOL.PHP_EOL.
"It is not recommended you set your token here however and is more secure to enter it when requested by ICEcoder as that will keep it in session only.".PHP_EOL.PHP_EOL.
"However, if you work in a trusted and secure environment, it is more efficient to set it here.",
"Sorry cannot commit..." => "Sorry, cannot commit settings in demo mode",
"update" => "update"
),
"settings-update" =>
array(
"Cannot update config..." => "Cannot update config file. Please set public write permissions on",
"and try again" => "and try again",
"and press refresh" => "and press refresh"
),
"updater" =>
array(
"Update appears to..." => "Update appears to be successful"
),
"find-in-files" =>
array(
"Enter path to search in" => "Enter path to search in",
"Enter semicolon-separated masks of files to look at (e.g. *.php;*.html;*.js)" => "Enter semicolon-separated masks of files to look at (e.g. *.php;*.html;*.js)",
"Type of text" => "Type of text",
"Fixed text" => "Fixed text",
"Regular expression" => "Regular expression",
"Case sensitive" => "Case sensitive",
"Yes" => "Yes",
"No" => "No",
"Search" => "Search",
)
);
?>

425
lang/french.php Normal file
View File

@@ -0,0 +1,425 @@
<?php
// French language translation
// par: @krisxoofoo (GitHub)
// @kris_fr Twitter)
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &amp;). Translations on right side.
$text = array(
// / [ROOT LEVEL]
"editor" =>
array(
"Click icons for..." => "<b>Cliquez sur les ic&ocirc;nes<br>pour l&apos;aide &amp;<br>et infos d&apos;utilisation</b>",
"server" => "Serveur",
"Server name, OS..." => "Nom du serveur, OS & IP :",
"Root" => "Racine :",
"ICEcoder root" => "Racine d&apos;ICEcoder :",
"PHP version" => "Version PHP :",
"Date & time" => "Date & heure :",
"your device" => "Votre &eacute;quipement",
"Browser" => "Navigateur :",
"Your IP" => "Votre IP :",
"files" => "Fichiers",
"Last 10 files..." => "10 derniers fichiers ouverts :",
"none" => "[aucun]",
"test suite" => "Suite de test",
"Run unit tests" => "Lancer les tests unit",
"dev mode" => "Mode dev",
"Status" => "Statuts",
"Using" => "Utilise",
"You can switch..." => "Vous pouvez basculer le mode dev on/off
dans lib/config__settings.php",
"results" => "r&eacute;sultats"
),
"files" =>
array(
"Lock" => "Verrouiller",
"Refresh" => "Rafra&icirc;chir",
"ROOT" => "[RACINE]"
),
"index" =>
array(
"UPDATE INFO" => "INFO DE MISE A JOUR",
"now available" => "actuellement disponible",
"Your version is" => "Votre version est la",
"Update now" => "Mettre &agrave; jour maintenant",
"You have some..." => "Vous avez quelques changements non sauvegard&eacute;s",
"Are you sure you want to close?" => "Are you sure you want to close?",
"working" => "en progression",
"Color picker" => "S&eacute;lecteur de couleur",
"New File" => "Nouveau fichier",
"New Folder" => "Nouveau dossier",
"Upload File(s)" => "T&eacute;l&eacute;charger le(s) Fichier(s)",
"Paste" => "Coller",
"Open" => "Ouvrir",
"Copy" => "Copier",
"Duplicate" => "Dupliquer",
"Delete" => "Effacer",
"Rename" => "Renommer",
"View Webpage" => "Afficher la page web",
"Download" => "T&eacute;l&eacute;charger",
"Properties" => "Propri&eacute;t&eacute;s",
"File" => "Fichier",
"Edit" => "Editer",
"Remote" => "Distant",
"Help" => "Aide",
"Save" => "Enregistrer",
"Save As" => "Enregistrer sous",
"Live Preview" => "Pr&eacute;visualisation",
"Upload" => "T&eacute;l&eacute;charger",
"Zip" => "Compresser",
"Print" => "Imprimer",
"Fullscreen toggle" => "Basculer en mode plein &eacute;cran",
"Logout" => "D&eacute;connexion",
"Undo" => "Annuler",
"Redo" => "Refaire",
"Indent more" => "Plus d&apos;indentation",
"Indent less" => "Moins d&apos;indentation",
"Autocomplete" => "Autocompl&eacute;tion",
"Comment/Uncomment" => "Commenter/D&eacute;commenter",
"Jump to Definition" => "Aller &agrave; la D&eacute;finition",
"Manual" => "Manuel",
"Shortcuts" => "Raccourcis",
"Settings" => "Pr&eacute;f&eacute;rences",
"Search for selected" => "Rechercher pour la s&eacute;lection",
"website" => "Site internet",
"Close all tabs" => "Fermer les onglets",
"Alphabetize tabs" => "Onglets par ordre alphab&eacute;tique",
// "Find" => "Chercher",
// "in" => "dans",
// "and" => "et",
// "replace" => "remplacer",
// "replace all" => "remplacer tout",
// "this document" => "ce document",
// "open documents" => "les documents ouverts",
// "all files" => "tous les fichiers",
// "all filenames" => "tous les noms de fichiers",
"Turn on/off..." => "Basculer on/off l&apos;assistance au code",
"Code Assist" => "Assistance au Code",
"Go to Line" => "Aller &agrave; la ligne",
"View" => "Afficher",
"Bug reporting not active" => "Le signalement de dysfonctionnement n&apos;est pas actif"
),
// /LIB
"bug-files-check" =>
array(
"Found in" => "Trouv&eacute; dans :"
),
"file-control" =>
array(
"Sorry" => "D&eacute;sol&eacute;",
"does not seem..." => "ne semble pas exister sur le serveur",
"Sorry, could not..." => "D&eacute;sol&eacute;, impossibilit&eacute; de r&eacute;cup&eacute;rer le contenu de",
"Sorry, cannot create..." => "D&eacute;sol&eacute;, impossibilit&eacute; de cr&eacute;er le dossier sur",
"Sorry, cannot copy" => "D&eacute;sol&eacute;, impossibilit&eacute; de copier",
"into" => "dans",
"Uploaded file(s) OK" => "T&eacute;l&eacute;chargement du (des) fichier(s) r&eacute;ussi(s)",
"Sorry, cannot upload" => "D&eacute;sol&eacute;, impossibilit&eacute; de t&eacute;l&eacute;charger",
"Sorry, cannot upload..." => "D&eacute;sol&eacute;, impossibilit&eacute; de t&eacute;l&eacute;charger en mode d&eacute;mo",
"Sorry, cannot rename" => "D&eacute;sol&eacute;, impossibilit&eacute; de renommer",
"Maybe public write..." => " Peut-&ecirc;tre que les permissions d&apos;&eacute;criture publique sont n&eacute;cessaires sur ce dossier ou son r&eacute;pertoire ?",
"Sorry, cannot move" => "D&eacute;sol&eacute;, impossibilit&eacute; de d&eacute;placer",
"Sorry, cannot save" => "D&eacute;sol&eacute;, impossibilit&eacute; de sauvegarder",
"Sorry, cannot replace..." => "D&eacute;sol&eacute;, impossibilit&eacute; de remplacer le texte dans ",
"Sorry, cannot change..." => "D&eacute;sol&eacute;, impossibilit&eacute; de changer les permissions sur",
"Sorry, cannot delete..." => "D&eacute;sol&eacute;, imossibilit&eacute; de supprimer le dossier racine",
"Sorry, cannot delete" => "D&eacute;sol&eacute;, impossibilit&eacute; d&apos;effacer",
"Sorry, this file..." => "D&eacute;sol&eacute;, le fichier a &eacute;t&eacute; modifi&eacute;, impossibilit&eacute; de sauvegarder",
"Reload this file..." => "Recharger le fichier, et copier votre version dans un nouveau document ?",
"There was a..." => "Un probl&egrave;me technique a &eacute;t&eacute; rencontr&eacute;, probablement quelque chose qui n&apos;&eacute;tait pas tout &agrave; fait pr&ecirc;t. ICEcoder a donc relanc&eacute; &agrave; nouveau son contr&ocirc;le de fichier.",
"displayed at" => "affich&eacute; sur",
"Enter filename to..." => "Saisissez le nom du fichier &agrave; enregistrer sur",
"That file exists..." => "Ce fichier existe d&eacute;j&agrave;, voulez vous l&apos;&eacute;craser ?",
"Saving" => "Sauvegard&eacute;"
),
"get-branch" =>
array(
"There are no..." => "Il n&apos;y a pas de diff&eacute;rences entre le repo local et celui de GitHub. Revenir en mode normal ?",
"Sorry, there was..." => "D&eacute;sol&eacute;, il y avait une erreur, le code :",
"Your local folder..." => " Votre dossier local est vide, voulez-vous le cloner ?"
),
"github-manager" =>
array(
"Sorry, cannot create..." => "D&eacute;sol&eacute;, impossible de cr&eacute;er un dossier dans",
"Cannot update config..." => "Impossibilit&eacute; de mettre &agrave; jour le fichier de configuration. Veuillez v&eacute;rifier les permissions d&apos;&eacute;criture.",
"and try again" => "et essayez de nouveau",
"saving github paths" => "chemins github sauvegard&eacute;s ...",
"github paths" => "chemins github",
"Choose existing path" => "Choisis le chemin existant",
"Local path" => "Chemin local",
"Remote GitHub path" => "Chemin distant GitHub",
"Choose" => "Choisir",
"Set local and..." => "D&eacute;finir le chemin d&apos;acc&egrave;s local et distant &agrave; blanc pour le retirer ",
"Update" => "Mise &agrave; jour",
"Add new path" => "Ajouter un nouveau chemin",
"Add" => "Ajouter",
"Usage Info" => "Info d&apos;utilisation :",
"Enter relative local..." => "Entrez les chemins relatifs locaux (par exemple / serveur / mesfichiers) et les chemins absolus GitHub (par exemple https://github.com/user/repo ou https://github.com/user/repo/tree/branch pour les branches). Avec ceci, vous aurez &eacute;tabli les chemins source sur les deux sites, comme une paire.",
"You can then..." => "Vous pouvez ensuite choisir une paire de chemin, et cela devient alors votre nouveau chemin d&apos;acc&egrave;s racine dans ICEcoder.",
"The file manager..." => "Le gestionnaire de fichiers affiche alors une nouvelle ic&ocirc;ne GitHub, que vous pouvez cliquer dessus pour ex&eacute;cuter et afficher une v&eacute;rification des diff&eacute;rences entre les 2 sources. Ces diff&eacute;rences peuvent &ecirc;tre vers&eacute;es et bascul&eacute;es dans le projet distant GitHub ou clon&eacute;es sur votre version locale du projet, afin de synchroniser vos fichiers.",
"If you want..." => " Si vous souhaitez d&eacute;finir un autre chemin d&apos;acc&egrave;s &agrave; la racine, cela peut &ecirc;tre fait dans l&apos;&eacute;cran des param&egrave;tres."
),
"github" =>
array(
"Sorry, you do..." => "D&eacute;sol&eacute;, vous ne semblez pas avoir OpenSSL charg&eacute; sur votre instance de PHP, https n&apos;est donc pas disponible. Cela est n&eacute;cessaire pour le transfert de donn&eacute;es GitHub, veuillez modifier les param&egrave;tres du fichier php.ini, red&eacute;marrez votre serveur et essayez &agrave; nouveau."
),
"headers" =>
array(
"Bad CSRF token..." => "Mauvais jeton CSRF. S&apos;il vous pla&icirc;t, envoyer un rapport de l&apos;erreur &agrave; https://github.com/mattpass/ICEcoder si vous d&eacute;sirez qu&apos;il soit corrig&eacute;."
),
"help" =>
array(
"shortcuts" => "raccourcis",
"Within document" => "Dans un fichier",
"On Tabs" => "Dans les onglets",
"Within file manager" => "Dans le gestionnaire de fichiers",
"Anywhere" => "N&apos;importe o&ugrave;",
"Space" => "Espace",
"Click" => "Clic",
"or" => "ou",
"Left click" => "Clic gauche",
"Middle click" => "Clic du milieu",
"Double click tap..." => "Double clic / touche (mobile)",
"Right click" => "Clic droit",
"Middle scrollwheel" => "Roulette du milieu",
"Drag" => "Glisser",
"Autocomplete add snippet" => "Saisie semi-automatique / ajouter un extrait",
"Multiple select" => "S&eacute;lection multiple",
"Move line up" => "Aller &agrave; la ligne sup&eacute;rieure",
"Move line down" => "Aller &agrave; la ligne inf&eacute;rieure",
"Duplicate lines" => "Dupliquer la(les) ligne(s)",
"Remove lines" => "Supprimer la(les) ligne(s)",
"Insert line before" => "Ins&eacute;rer un ligne avant",
"Insert line after" => "Ins&eacute;rer une ligne apr&egrave;s",
"Search for selected" => "Rechercher pour la s&eacute;lection",
"Jump to definition" => "Aller &agrave; la d&eacute;finition / revenir en arri&egrave;re",
"Comment uncomment" => "Commenter / D&eacute;commenter",
"Insert tab indent" => "Ins&eacute;rer un tableau / indent selected",
"Wrap with div" => "Plier avec &lt;div&gt;",
"Wrap with span" => "Plier avec &lt;span&gt;",
"Wrap unwrap p" => "Plier / d&eacute;plier avec &lt;p&gt;",
"Wrap unwrap a" => "Plier / d&eacute;plier avec &lt;a&gt;",
"Wrap unwrap b" => "Plier / d&eacute;plier avec &lt;b&gt;",
"Wrap unwrap i" => "Plier / d&eacute;plier avec &lt;i&gt;",
"Wrap unwrap strong" => "Plier / d&eacute;plier avec &lt;strong&gt;",
"Wrap unwrap em" => "Plier / d&eacute;plier avec &lt;em&gt;",
"Wrap unwrap h1..." => "Plier / d&eacute;plier avec &lt;h1&gt; - &lt;h3&gt;",
"End line with..." => "Fin de ligne avec &lt;br&gt;",
"Close tab" => "Fermer l&apos;onglet",
"Select file folder" => "S&eacute;lectionner fichier / dossier",
"Open file" => "Ouvrir le fichier",
"Range select" => "S&eacute;lection de la plage",
"Options for selected" => "Options pour s&eacute;lectionner",
"Delete selected" => "Suppression de la s&eacute;lection",
"Next previous tab" => "Onglet suivant / pr&eacute;c&eacute;dent",
"Next tab" => "Onglet suivant",
"Previous tab" => "Onglet pr&eacute;c&eacute;dent",
"New tab" => "Nouvel onglet",
"Close current tab" => "Fermer l&apos;onglet courant",
"Open file prompt" => "Ouvrir une invite de fichier",
"Find" => "Chercher",
"Focus on Go..." => " Focus sur le d&eacute;but de ligne",
"Save" => "Enregistrer",
"Save as" => "Enregistrer sous...",
"View webpage" => "Afficher la page web",
"Contract expand file..." => "R&eacute;duire / agrandir le gestionnaire de fichiers",
"Fold unfold current..." => "Plier / d&eacute;plier la ligne courante",
"Refocus on document" => "Revenir sur le document",
"Cancel tasks" => "Quitter les tâches"
),
"ice-coder" =>
array(
"No text selected..." => "Aucun texte s&eacute;lectionn&eacute; pour la recherche sur",
"Creating Folder" => "r&eacute;ation de dossier",
"Sorry you can..." => "D&eacute;sol&eacute;, vous ne pouvez pas avoir plus de 100 fichiers ouverts en m&ecirc;me temps !",
"Opening File" => "Ouverture de fichier",
"Enter relative file..." => "Entrez le chemin relatif du fichier (pr&eacute;fix&eacute; avec un /) ou l&apos;URL distante",
"Getting" => "Obtention",
"Please enter the..." => "S&apos;il vous plait, saisissez le nouveau nom pour",
"Renaming to" => "Renomm&eacute; en",
"Moving to" => "D&eacute;plac&eacute; vers",
"Deleting File" => "Suppression fichier",
"Pasting File" => "Collage fichier",
"Sorry cannot paste..." => "D&eacute;sol&eacute;, il n&apos;est pas possible de coller une racine",
"Nothing to paste..." => "Rien &agrave; coller, copiez un fichier/dossier en premier !",
"Replacing text in" => "Remplacement de texte dans",
"Cancelled tasks" => "Tâches annul&eacute;s",
"Open previous files" => "Ouvrir les fichiers pr&eacute;c&eacute;dents ?",
"Please enter your..." => "S&apos;il vous pla&icirc;t entrez votre token GitHub (soit l&apos;acc&egrave;s par token personnel ou le token client / paire secr&egrave;te). Voir l&apos;info-bulle &agrave; c&ocirc;t&eacute; de Github Auth Token sur &eacute;cran Aide> Param&egrave;tres pour plus d&apos;infos",
"This will compare..." => "Ceci compare et montre une vue des diff&eacute;rences entre votre r&eacute;pertoire local et le repo. D&apos;accord ?",
"Please note for..." => "S&apos;il vous pla&icirc;t, noter : la mise &agrave; jour fonctionne correctement, vous devez avoir les permissions d&apos;&eacute;criture / suppression &agrave; tous les r&eacute;pertoires et fichiers d&apos;ICEcoder. Si vous avez besoin de r&eacute;cup&eacute;rer cette version d&apos;ICEcoder pour une raison quelconque, vous la trouverez dans le r&eacute;pertoire / tmp. Cliquez sur OK pour proc&eacute;der &agrave; une mise &agrave; jour automatique, ou annuler et visiter le site d&apos;ICEcoder de sorte que vous pouvez r&eacute;cup&eacute;rer le fichier zip et mettre &agrave; jour manuellement.",
"You can start..." => "Vous pouvez reporter un dysfonctionnement dans Aide > Pr&eacute;f&eacute;rences",
"Error cannot find..." => "Erreur : ne peut pas trouver / acc&eacute;der aux chemins des fichiers d&apos;erreur",
"No new errors..." => "Aucune nouvelle erreur trouv&eacute;e",
"You have made..." => "Vous avez r&eacute;alis&eacute; des modifications. Etes vous sûr(e) de d&eacute;sirer quitter sans sauvegarder ?",
"Close all tabs" => "Fermer tous les onglets?"
),
"login" =>
array(
"set password" => "D&eacute;finir un mot de passe",
"login" => "Connexion",
"To disable registration..."=> "Pour d&eacute;sactiver le mode &apos;enregsitrement&apos;, ouvrir le menu des pr&eacute;f&eacute;rences ou le fichier lib/config___settings.php et modifier enableRegistration &agrave; &apos;false&apos;, puis recharger cette page",
"Registration mode enabled" => "Mode Enregistrement activ&eacute;",
"auto-check for updates" => "V&eacute;rification automatique des mises &agrave; jour",
"To put into..." => "Pour passer en mode &apos;multi-utilisateur&apos;, ouvrir le menu des pref&eacute;rences ou le ifchier lib/config___settings.php et modifier multiUser &agrave; &apos;true&apos;, puis recharger cette page",
"multi-user" => "Multi-utilisateur"
),
"multiple-results" =>
array(
"rename all" => "Tout renommer",
"replace all" => "Tout remplacer",
"document" => "document",
"Found" => "trouv&eacute;",
"times" => "date",
"replace" => "remplacer",
"file folder" => "fichier/dossier",
"rename to" => "renommer en",
"rename" => "renommer",
"file" => "fichier",
"No matches found" => "Aucun r&eacute;sultat de trouver",
"selected" => "s&eacute;lectionn&eacute;",
"found in" => "trouv&eacute; dans",
"Replaced" => "Remplac&eacute;"
),
"plugins-manager" =>
array(
"ICEcoder needs to..." => "ICEcoder a besoin d&apos;&ecirc;tre recharg&eacute; pour rendre ce plugin utilisable. Le faire maintenant ?",
"saving plugins" => "sauvegarde des plugins ...",
"Cannot update config..." => "Impossibilit&eacute; de mettre &agrave; jour le fichier de configuration. V&eacute;rifiez les permissions d&apos;&eacute;criture",
"and try again" => "et essayez de nouveau",
"couldnt delete dir" => "ne peut pas effacer le dossier",
"couldnt delete file" => "ne peut pas effacer le fichier",
"plugins" => "plugins",
"Guide to writing..." => "Guide pour &eacute;crire des plugins",
"Manage Installed" => "Gestionnaire install&eacute;",
"URL" => "URL",
"Target" => "Cible",
"Timer" => "Compteur",
"Update" => "Mise &agrave; jour",
"Install" => "Installation",
"Uninstall" => "D&eacute;sinstallation",
"Reload after install..." => "Une reconnexion est n&eacute;cessaire apr&egrave;s l&apos;installation"
),
"properties" =>
array(
"properties" => "propri&eacute;t&eacute;s",
"Size" => "Taille",
"Modified" => "Derni&egrave;re modification",
"Last access" => "Dernier acc&egrave;s",
"Type" => "Type",
"Readable Writeable" => "Lisible / Inscriptible",
"Relative path" => "Chemin relatif",
"Absolute path" => "Chemin absolute",
"Contains" => "Contenu",
"Permissions" => "Permissions",
"Owner" => "Propri&eacute;taire",
"Group" => "Groupe",
"Public" => "Public",
"Read" => "Lire",
"Write" => "Ecrire",
"Execute" => "Ex&eacute;cuter",
"Change to" => "Modifier en",
"update" => "mise &agrave; jour"
),
"settings-common" =>
array(
"Your document does..." => "Votre document ne semble pas &ecirc;tre en UTF-8 et a donc &eacute;t&eacute; converti"
),
"settings-save-current-files" =>
array(
"Cannot update config..." => "Impossibilit&eacute; de mettre &agrave; jour le fichier de configuration. V&eacute;rifiez les permissions d&apos;&eacute;criture sur celui-ci",
"and try again" => "et essayez de nouveau"
),
"settings-screen" =>
array(
"settings" => "pr&eacute;f&eacute;rences",
"version" => "version",
"website" => "Site internet",
"git" => "git",
"codemirror dir" => "chemin de codemirror",
"codemirror version" => "version de codemirror ",
"file manager root" => "racine du gestionnaire de fichiers",
"Free to use..." => "Libre de l&apos;utiliser pour vos propres fins, commerciales ou non, faites moi juste savoir de toute utilisation sympa ou personnalisations. :)<br><br>Aucune garantie ou responsabilit&eacute; est accept&eacute;es de notre part, toute responsabilit&eacute; d&apos;utilisation est de votre ressort.<br><br>De nombreuses personnes fantastiques et d&apos;entreprises ont contribu&eacute; &agrave; r&eacute;aliser ICEcoder et il est important de les remercier ici. S&apos;il vous pla&icirc;t, parcourez la liste compl&egrave;te sur",
"functionality" => "fonctionnalit&eacute;s",
"check for updates..." => "V&eacute;rifier les mises &agrave; jour",
"auto open last..." => "affichage des derniers fichiers",
"when finding in..." => "extension à exclure des recherches",
"assisting" => "assistant",
"code assist" => "Assistance de code",
"visible tabs" => "onglets visibles",
"locked nav" => "navigation v&eacute;rouill&eacute;e",
"tag wrapper command" => "commande de tag",
"auto-complete on" => "auto-complétion sur",
"security" => "s&eacute;curit&eacute;",
"new password" => "nouveau mot de passe",
"8 chars min" => "8 caract&egrave;res minimum",
"confirm password" => "confirmation du mot de passe",
"banned files/folders" => "fichiers/dossiers bannis",
"banned paths" => "chemins bannis",
"ip addresses" => "adresses ip",
"Slash prefixed comma..."=> "Slash pr&eacute;fix&eacute;, s&eacute;par&eacute;es par des virgules",
"Comma delimited" => "D&eacute;limit&eacute; par des virgules",
"style" => "style",
"theme" => "th&egrave;me",
"line wrapping" => "retour &agrave; la ligne",
"indent type" => "indent type",
"indent size" => "indent size",
"font size" => "font size",
"auto indent" => "auto indent",
"layout" => "disposition",
"plugin panel aligned" => "panneau des plugins align&eacute;",
"file manager" => "gestionnaire de fichiers",
"root" => "racine",
"Slash prefixed" => "Slash pr&eacute;fix&eacute;",
"bug reporting" => "Rapport de dysfonctionnement",
"check in files" => "v&eacute;rifier dans les fichiers",
"every" => "chaque",
"secs getting last" => "secondes, obtenir le dernier",
"lines" => "lignes",
"multi-user" => "multi-utilisateurs",
"Make sure you..." => "Assurez-vous que vous ne vous bloquez pas sur",
"Registration" => "Enregistrement",
"auth token" => "auth token",
"Required to get..." => "N&eacute;cessaire pour obtenir les diffs, proc&eacute;der &agrave; un commit sur votre projet sous GitHub. Si vous n&apos;en avez pas, vous pouvez utiliser un :".PHP_EOL.PHP_EOL.
"- jeton/token d&apos;acc&egrave;s personel (https://help.github.com/articles/creating-an-access-token-for-command-line-use), ou un jeton/token ".PHP_EOL.
" client/paire secr&egrave;te (http://developer.github.com/v3/oauth).".PHP_EOL.PHP_EOL.
"Il n&apos;est pas recommand&eacute; de d&eacute;finir votre jeton ici, cependant, il est plus sûr de l&apos;entrer &agrave; la demande d&apos;ICEcoder car cela le garde uniquement en session.".PHP_EOL.PHP_EOL.
"Cependant, si vous travaillez dans un environnement fiable et s&eacute;curis&eacute;, il est plus efficace de le mettre ici.",
"Sorry cannot commit..." => "D&eacute;sol&eacute;, vous ne pouvez pas modifier les pr&eacute;f&eacute;rences en mode de d&eacute;monstration",
"update" => "Mise &agrave; jour"
),
"settings-update" =>
array(
"Cannot update config..." => "Impossibilit&eacute; de mettre &agrave; jour le fichier de configuration. V&eacute;rifiez les permissions d&apos;&eacute;criture sur celui-ci",
"and try again" => "et essayez de nouveau",
"and press refresh" => "et pressez le rafra&icirc;chissement de la page"
),
"updater" =>
array(
"Update appears to..." => "La mise &agrave; jour semble s&apos;&ecirc;tre r&eacute;alis&eacute;e avec succ&egrave;s"
)
);
?>

398
lang/german.php Normal file
View File

@@ -0,0 +1,398 @@
<?php
// German language translation
// by: @olliiee (GitHub)
// @trolliusgigant (Twitter)
// Please preserve formatting, line breaks, special characters, anything in <tags> and HTML equivalents (eg &amp;). Translations on right side.
$text = array(
// / [ROOT LEVEL]
"editor" =>
array(
"Click icons for..." => "<b>Klick auf das Icon<br>f&uuml;r Hilfe &amp;<br>Anwendungsbeispielen</b>",
"server" => "Server",
"Server name, OS..." => "Servername, OS & IP:",
"Root" => "Root:",
"ICEcoder root" => "ICEcoder root:",
"PHP version" => "PHP Version:",
"Date & time" => "Datum & Uhrzeit:",
"your device" => "Dein Gerät",
"Browser" => "Browser:",
"Your IP" => "Deine IP:",
"files" => "Dateien",
"Last 10 files..." => "Die letzten 10 ge&ouml;ffneten Dateien:",
"none" => "[nichts]",
"test suite" => "Test Suite",
"Run unit tests" => "Unittest starten",
"dev mode" => "Entwicklermodus",
"Status" => "Status",
"Using" => "Verwenden",
"You can switch..." => "Du kannst den Entwicklermodus in der in lib/config__settings.php ein- und ausschateln",
"results" => "Ergebnis"
),
"files" =>
array(
"Lock" => "Sperren",
"Refresh" => "Erneueren",
"ROOT" => "[ROOT]"
),
"index" =>
array(
"UPDATE INFO" => "Update Infos",
"now available" => "jetzt verf&uuml;gbar",
"Your version is" => "Deine Version ist",
"Update now" => "Jetzt aktualisieren",
"You have some..." => "Du hast einige nicht gespeicherete Dateien",
"Are you sure you want to close?" => "Are you sure you want to close?",
"working" => "arbeite",
"Color picker" => "Farbauswahl",
"New File" => "Neue Datei",
"New Folder" => "Neuer Ordner",
"Upload File(s)" => "Datei(en) hochladen",
"Paste" => "Einf&uuml;gen",
"Open" => "&Ouml;ffnen",
"Copy" => "Kopieren",
"Duplicate" => "Duplizieren",
"Delete" => "L&ouml;schen",
"Rename" => "Umbenennen",
"View Webpage" => "Webseite anzeigen",
"Download" => "Herunterladen",
"Properties" => "Einstellungen",
"File" => "Datei",
"Edit" => "Editieren",
"Remote" => "Fernzugriff",
"Help" => "Hilfe",
"Save" => "Speichern",
"Save As" => "Speichern als",
"Live Preview" => "Live Vorschau",
"Upload" => "Hochladen",
"Zip" => "Zip",
"Print" => "Drucken",
"Fullscreen toggle" => "Vollbildmodus wechseln",
"Logout" => "Ausloggen",
"Undo" => "R&uuml;ckg&auml;ngig",
"Redo" => "Wiederherstellen",
"Indent more" => "Einzug vergr&ouml;&szlig;ern",
"Indent less" => "Einzug verkleinern",
"Autocomplete" => "Auto vervollst&auml;ndigen",
"Comment/Uncomment" => "Kommentieren/Auskommentieren",
"Jump to Definition" => "Springe zur Definition",
"Manual" => "Anleitung",
"Shortcuts" => "Schnellzugriffe",
"Settings" => "Einstellungen",
"Search for selected" => "Nach Auswahl suchen",
"website" => "Website",
"Close all tabs" => "Alle Tabs schlie&szlig;en",
"Alphabetize tabs" => "Tabs alphabetisch sortieren",
// "Find" => "Finden",
// "in" => "in",
// "and" => "und",
// "replace" => "ersetzen",
// "replace all" => "alle ersetzen",
// "this document" => "dieses Dokument",
// "open documents" => "ge&ouml;ffnete Dokumente",
// "all files" => "Alle Dateien",
// "all filenames" => "Alle Dateinamen",
"Turn on/off..." => "Codeassistenten ein- ausschalten",
"Code Assist" => "Codeassistent",
"Go to Line" => "Geh zur Zeile",
"View" => "Anzeigen",
"Bug reporting not active" => "Fehlermeldungen sind nicht aktiv"
),
// /LIB
"bug-files-check" =>
array(
"Found in" => "Gefunden in:"
),
"file-control" =>
array(
"Sorry" => "Entschuldigung",
"does not seem..." => "Es scheint auf dem Server nicht zu existieren",
"Sorry, could not..." => "Entschuldigung, kann den Inhalte von",
"Sorry, cannot create..." => "Entschuldigung, kann den Ordner nicht erstellen in",
"Sorry, cannot copy" => "Entschuldigung, kann nicht kopieren",
"into" => "in",
"Uploaded file(s) OK" => "Hoch geladene Datei(n) OK",
"Sorry, cannot upload" => "Entschuldigung, kann nicht hochladen",
"Sorry, cannot upload..." => "Entschuldigung, kann solange nicht hochladen, solange der Demo Modus aktiv ist",
"Sorry, cannot rename" => "Entschuldigung, kann nicht umbenennen",
"Maybe public write..." => "Vielleicht fehlen Schreibrechte auf dem &uuml;bergeordneten Ordner?",
"Sorry, cannot move" => "Entschuldigung, kann nicht verschieben",
"Sorry, cannot save" => "Entschuldigung, kann nicht speichern",
"Sorry, cannot replace..." => "Entschuldigung, kann den Text nicht ersetzen",
"Sorry, cannot change..." => "Entschuldigung, kann die Berechtigung nicht &auml;ndern f&uuml;r",
"Sorry, cannot delete..." => "Entschuldigung, kann das Hauptverzeichnis nicht l&ouml;schen",
"Sorry, cannot delete" => "Entschuldigung, kann nicht l&ouml;schen",
"Sorry, this file..." => "Entschuldigung, die Datei wurde ge&auml;ndert, kann nicht speichern",
"Reload this file..." => "Soll die Datei mit deiner neueren Version neu geladen werden?",
"There was a..." => "Irgend was ist schief gelaufen. ICEcoder l&auml;dt einfach noch mal neu.",
"displayed at" => "angezeigt bei",
"Enter filename to..." => "Dateinamen eingeben um es zu speichern",
"That file exists..." => "Die Datei existiert bereits, &uuml;berschreiben?",
"Saving" => "Speichere"
),
"get-branch" =>
array(
"There are no..." => "Es gibt keinen Unterschied zwischen der lokalen Datei und dem im GitHub Repo. Zur&uuml;ck zum regul&auml;ren Modus?",
"Sorry, there was..." => "Entschuldigung, es ist ein Fehler aufgetreten. Fehlercode:",
"Your local folder..." => "Dein lokales Verzeichnis ist leer, soll es geklont werden"
),
"github-manager" =>
array(
"Sorry, cannot create..." => "Entschuldigung, kann Verzeichnis nicht anlegen",
"Cannot update config..." => "Kann die Config Datei nicht aktualisieren. Bitte Schreibrechte setzen",
"and try again" => "und versuch es noch einmal",
"saving github paths" => "Speichere GitHub Pfad ...",
"github paths" => "GitHub Pfad",
"Choose existing path" => "W&auml;hle existierenden Pfad",
"Local path" => "Lokaler Pfad",
"Remote GitHub path" => "Ferner GitHub Pfad",
"Choose" => "Wh&auml;hle",
"Set local and..." => "L&ouml;sch lokalen und fernen Pfad",
"Update" => "Aktualisieren",
"Add new path" => "Neuen Pfad hinzuf&uuml;gen",
"Add" => "Hinfzuf&uuml;gen",
"Usage Info" => "Infos zur Verwendung:",
"Enter relative local..." => "Gib den relativen, lokalen Pfad (z.B. /server/meineDateien) und absoluten GitHub Pfad (z.B. https://github.com/user/repo oder https://github.com/user/repo/tree/branch f&uuml;r branches), wie im Beispiel an. Dadurch werden die entsprechenden Quellverzeichnisse als Paar angelegt.",
"You can then..." => "Du kannst ein Paar ausw&auml;hlenn, welches als neues Root Verzeichnis in ICECoder festgelegt wird.",
"The file manager..." => "Im Dateimanager erscheint ein GitHub Icon. Durch einen Klick auf das Icon, werden die Unterschiede zwischen beiden Versionen angezeigt. Diese Unterschiede können committed und zum GitHub Repo gepusht, oder zum lokale Pfad geklont werden.",
"If you want..." => "Soll ein weiterers Hauptverzeichnis gesetzt werden, kann dies in den Einstellungen vorgenommen werden."
),
"github" =>
array(
"Sorry, you do..." => "Es scheint so, als sei OpenSSL nicht mit PHP geladen worden, dadurch steht https nicht zur verf&uuml;gung. Dies wird jedoch f&uuml;r den Datentransfer zu GitHub ben&ouml;tigt. Bitte die PHP.ini entsprechend anpassen und neu starten."
),
"headers" =>
array(
"Bad CSRF token..." => "Fehlerhafter CSRF Token. Bitte den Fehler an https://github.com/mattpass/ICEcoder damit das Problem gel&ouml;st werden kann."
),
"help" =>
array(
"shortcuts" => "shortcuts",
"Within document" => "Innerhalb des Dokuments",
"On Tabs" => "Ge&ouml;ffnete Tabs",
"Within file manager" => "Innerhalb des Dateimanagers",
"Anywhere" => "&Uuml;berall",
"Space" => "Leerzeichen",
"Click" => "Klick",
"or" => "oder",
"Left click" => "Linksklick",
"Middle click" => "mittlerer Klick",
"Double click tap..." => "Doppelklick / Tap (Mobile)",
"Right click" => "Rechtsklick",
"Middle scrollwheel" => "mittleres Mausrad",
"Drag" => "Ziehen",
"Autocomplete add snippet" => "Autocomplete / snippet hinzuf&uuml;gen",
"Multiple select" => "Mehrfachauswahl",
"Move line up" => "Zeile h&ouml;her",
"Move line down" => "Zeile runter",
"Duplicate lines" => "Zeile(n) duplizieren",
"Remove lines" => "Zeile(n) entfernen",
"Insert line before" => "Zeile vorher einf&uuml;gen",
"Insert line after" => "Zeile danach ein&uuml;gen",
"Search for selected" => "Nach dem gesuchten ausw&auml;hlen",
"Jump to definition" => "Zur Definition springen / zur&uml;ck springen",
"Comment uncomment" => "Kommentieren / Auskommentieren",
"Insert tab indent" => "Tab einf&uuml;gen / Gedankenstrich selektiert",
"Wrap with div" => "Mit &lt;div&gt; umschlie&szlig;en",
"Wrap with span" => "Mit &lt;span&gt; umschlie&szlig;en",
"Wrap unwrap p" => "Umschlie&szlig;en / unwrap with &lt;p&gt;",
"Wrap unwrap a" => "Umschlie&szlig;en / Mit &lt;a&gt; auschlie&szlig;en",
"Wrap unwrap b" => "Umschlie&szlig;en / Mit &lt;b&gt; auschlie&szlig;en",
"Wrap unwrap i" => "Umschlie&szlig;en / Mit &lt;i&gt; auschlie&szlig;en",
"Wrap unwrap strong" => "Umschlie&szlig;en / Mit &lt;strong&gt; auschlie&szlig;en",
"Wrap unwrap em" => "Umschlie&szlig;en / Mit &lt;em&gt; auschlie&szlig;en",
"Wrap unwrap h1..." => "Umschlie&szlig;en / Mit &lt;h1&gt; - &lt;h3&gt; auschlie&szlig;en",
"End line with..." => "Zeile abschlie&szlig;en mit &lt;br&gt;",
"Close tab" => "Tab schlie&szlig;en",
"Select file folder" => "Datei / Verzeichnis ausw&auml;hlen",
"Open file" => "Datei &ouml;ffnen",
"Range select" => "Bereich ausw&auml;hlen",
"Options for selected" => "Optionen f&uuml;r ausgew&auml;hlte",
"Delete selected" => "Ausgew&auml;hlte l&ouml;schen",
"Next previous tab" => "N&auml;chster / Vorheriger Tab",
"Next tab" => "N&auml;chster Tab",
"Previous tab" => "Vorheriger Tab",
"New tab" => "Neuer Tab",
"Close current tab" => "Aktuellen Tab schlie&szlig;en",
"Open file prompt" => "Datei &ouml;ffnen Dialog anzeigen",
"Find" => "Finden",
"Focus on Go..." => "Fokus auf Gehe zu Zeile Feld setzen",
"Save" => "Speichern",
"Save as" => "Speichern als ...",
"View webpage" => "Webseite anzeigen",
"Contract expand file..." => "Alle Dateien / Verzeichnisse anzeigen",
"Fold unfold current..." => "Aktuelle Zeile einklappen",
"Refocus on document" => "Erneut den Fokus auf das Dokument setzen",
"Cancel tasks" => "Vorgang abbrechen"
),
"login" =>
array(
"set password" => "Passwort setzen",
"login" => "Login",
"To disable registration..." => "Um den Registrierungsmodus zu deaktivieren, &ouml;ffne im Men&uuml; die Einstellungen oder die Datein lib/config___settings.php und setze unter enableRegistration auf false, danach lade die Seite erneut.",
"Registration mode enabled" => "Registrierungsmodus aktiviert",
"auto-check for updates" => "Automatisch nach Update suchen",
"To put into..." => "Um den Mehrbenutzermodus zu aktivieren, &ouml;ffne im Men&uuml; die Einstellungen oder die Datein lib/config___settings.php und setze unter multiUser auf true, danach lade die Seite erneut",
"multi-user" => "Mehrbenutzermodus"
),
"multiple-results" =>
array(
"rename all" => "Alle umbenennen",
"replace all" => "Alle ersetzen",
"document" => "Dokument",
"Found" => "Gefunden",
"times" => "",
"replace" => "ersetzen",
"file folder" => "Datei/Verzeichnis",
"rename to" => "Umbenennen nach",
"rename" => "Umbenennen",
"file" => "Datei",
"No matches found" => "Nichts gefunden",
"selected" => "Ausgew&auml;hlte",
"found in" => "Gefunden in",
"Replaced" => "Ersetzen"
),
"plugins-manager" =>
array(
"ICEcoder needs to..." => "ICEcoder muss neu geladen werden, damit das Plugin genutzt werden kann. Jetzt neu laden?",
"saving plugins" => "speichere Plugins ...",
"Cannot update config..." => "Kann die Konfigurationsdatei nicht aktualisieren. Bitte Schreibrechte vergeben",
"and try again" => "und es nochmal versuchen",
"couldnt delete dir" => "kann Verzeichnis nicht l&ouml;schen",
"couldnt delete file" => "kann Datei nicht l&ouml;schen",
"plugins" => "Plugins",
"Guide to writing..." => "Anleitung zum Erstellen von Plugins",
"Manage Installed" => "Gef&uuml;hrte Installtion",
"URL" => "URL",
"Target" => "Ziel",
"Timer" => "Timer",
"Update" => "Update",
"Install" => "Installieren",
"Uninstall" => "Deinstallieren",
"Reload after install..." => "Neuladen nach der Installation erforderlich"
),
"properties" =>
array(
"properties" => "Eigenschaften",
"Size" => "Gr&ouml;&szlig;e",
"Modified" => "Ver&auml;ndert",
"Last access" => "Letzter Zugriff",
"Type" => "Typ",
"Readable Writeable" => "Lesbar / Schreibbar",
"Relative path" => "Relativer Pfad",
"Absolute path" => "Absoluter Pfad",
"Contains" => "Beinhaltet",
"Permissions" => "Berechtigungen",
"Owner" => "Besitzer",
"Group" => "Gruppe",
"Public" => "&Ouml;ffentlich",
"Read" => "Lesen",
"Write" => "Schreiben",
"Execute" => "Ausf&uuml;hren",
"Change to" => "&Auml;ndern um",
"update" => "aktualisieren"
),
"settings-common" =>
array(
"Your document does..." => "Das Dokument scheint nicht in UTF-8 codiert zu sein, darum wurde es angepasst"
),
"settings-save-current-files" =>
array(
"Cannot update config..." => "Kann Konfigurationsdatei nicht aktualisieren. Bitte Schreibrechte vergeben",
"and try again" => "und versuch es noch mal"
),
"settings-screen" =>
array(
"settings" => "Einstellungen",
"version" => "Version",
"website" => "Website",
"git" => "git",
"codemirror dir" => "CodeMirror Verzeichnis",
"codemirror version" => "CodeMirror Version",
"file manager root" => "Stammverzeichnis vom Dateimanager",
"Free to use..." => "Kostenfrei nutzbar, kommerziell oder nicht. Gebt mir Bescheid &uuml;ber eure Nutzung oder Anpassungen. :)<br><br>Keine Garantie oder Haftung, Nutzung auf eigene Gefahr.<br><br>Viele fantastische Leute und Unternehmen haben dabei geholfen ICEcoder zu dem zu machen, was es heute ist. Und es sind zu viele um ihnen einzelen zu danken. Eine vollst&auml;ndige Liste gibt es unter",
"functionality" => "Funktionalit&auml;t",
"check for updates..." => "Bei jedem Ladem nach Updates suchen",
"auto open last..." => "Lade automatisch alle zuletzt ge&ouml;ffneten Datein beim Login",
"when finding in..." => "bei der Suche in Dateien ausschlie&szlig;en",
"assisting" => "Assistenten",
"code assist" => "Codeassistent",
"visible tabs" => "sichtbare Tabs",
"locked nav" => "gesperrte Navigation",
"tag wrapper command" => "Kommando f&uuml;r Tag Wrapper",
"auto-complete on" => "Auto-Vervollst&auml;ndigen mit",
"security" => "Sicherheit",
"new password" => "neues Passwort",
"8 chars min" => "8 Zeichen mindestens",
"confirm password" => "Passwort best&auml;tigen",
"banned files/folders" => "verbannte Dateien/Verzeichnisse",
"banned paths" => "verbannte Verzeichnisse",
"ip addresses" => "IP Adressen",
"Slash prefixed comma..." => "Schr&auml;gstrich vorangestellt, durch Komma getrennt",
"Comma delimited" => "Komma getrennt",
"style" => "Style",
"theme" => "Theme",
"line wrapping" => "Zeilenumbruch",
"indent type" => "Einr&uuml;ckung mit",
"indent size" => "Tabweite",
"font size" => "Schriftgr&ouml;&szlig;e",
"auto indent" => "auto indent",
"layout" => "Layout",
"plugin panel aligned" => "Ausrichtung Plugin-Panel",
"file manager" => "Dateimanager",
"root" => "Stammordner",
"Slash prefixed" => "Schr&auml;gstrich vorangestellt",
"bug reporting" => "Fehlermeldung",
"check in files" => "Dateien einchecken",
"every" => "jeden",
"secs getting last" => "Sekunden, immer zuletzt",
"lines" => "Zeilen",
"multi-user" => "Mehrbenutzer",
"Make sure you..." => "Sei sicher, dass du dich nicht selber aussperrst",
"Registration" => "Registrieren",
"auth token" => "Authentifizierungs-Token",
"Required to get..." => "Notwendig f&uuml;r diffs, commits des bei GitHub gehosteten Repository usw.. Wenn du keinen hast, kannst du einen:".PHP_EOL.PHP_EOL.
"- pers&ouml;nlichen Zugriffs Token (https://help.github.com/articles/creating-an-access-token-for-command-line-use) erstellen, oder".PHP_EOL.
"- Full Client/geheimen Token (http://developer.github.com/v3/oauth) erstellen.".PHP_EOL.PHP_EOL.
"Es ist nicht zu empfehlen den Token hier zu speichern, sondern wenn ICEcoder dazu auffordert. Dadurch gilt der Token immer nur pro Sitzung.".PHP_EOL.PHP_EOL.
"Jedoch, wenn du in einer sicheren und vertrauensvollen Umgebung (privater PC, Laptop, ..) arbeitest, ist es Sinnvoll ihn hier einzugeben.",
"Sorry cannot commit..." => "Entschuldigung, kann Einstellungen im Demo-Modus nicht &uuml;bernehmen",
"update" => "aktualisieren"
),
"settings-update" =>
array(
"Cannot update config..." => "Kann Konfigurationsdatei nicht aktualisieren. Bitte Schreibrechte vergeben",
"and try again" => "und versuch es noch einmal",
"and press refresh" => "und dr&uuml;ck Neu laden"
),
"updater" =>
array(
"Update appears to..." => "Update scheint erolgreich gelaufen zu sein"
)
);
?>

Some files were not shown because too many files have changed in this diff Show More