mirror of
https://github.com/icecoder/ICEcoder.git
synced 2026-03-03 15:24:00 +01:00
121
lang/english.php
121
lang/english.php
@@ -139,7 +139,107 @@ in lib/config__settings.php",
|
||||
"Enter filename to..." => "Enter filename to save at",
|
||||
"That file exists..." => "That file exists already, overwrite?",
|
||||
"Saving" => "Saving"
|
||||
),
|
||||
),
|
||||
|
||||
"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",
|
||||
"Remote GitHub path" => "Remote GitHub path",
|
||||
"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..." => "Baddd 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 / indent selected",
|
||||
"Wrap with div" => "Wrap with <div>",
|
||||
"Wrap with span" => "Wrap with <span>",
|
||||
"Wrap unwrap p" => "Wrap / unwrap with <p>",
|
||||
"Wrap unwrap a" => "Wrap / unwrap with <a>",
|
||||
"Wrap unwrap b" => "Wrap / unwrap with <b>",
|
||||
"Wrap unwrap i" => "Wrap / unwrap with <i>",
|
||||
"Wrap unwrap strong" => "Wrap / unwrap with <strong>",
|
||||
"Wrap unwrap em" => "Wrap / unwrap with <em>",
|
||||
"Wrap unwrap h1..." => "Wrap / unwrap with <h1> - <h3>",
|
||||
"End line with..." => "End line with <br>",
|
||||
"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",
|
||||
"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"
|
||||
),
|
||||
|
||||
"login" =>
|
||||
array(
|
||||
@@ -150,6 +250,25 @@ in lib/config__settings.php",
|
||||
"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"
|
||||
)
|
||||
|
||||
);
|
||||
?>
|
||||
@@ -8,6 +8,8 @@ if (!$_SESSION['loggedIn']) {
|
||||
header("Location: ../");
|
||||
}
|
||||
|
||||
$text = $_SESSION['text'];
|
||||
$t = $text['get-branch'];
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
@@ -213,7 +215,7 @@ if ($_SESSION['githubDiff']) {
|
||||
repoSHAArray = [];
|
||||
|
||||
// Set our repo and get the tree recursively
|
||||
var repo = github.getRepo(top.repo.split("/")[0], top.repo.split("/")[1]);
|
||||
var repo = github.getRepo(top.repo.split("/")[0], top.repo.split("/")[1]);
|
||||
repo.getTree('master?recursive=true', function(err, tree) {
|
||||
if(!err) {
|
||||
treePaths = [];
|
||||
@@ -288,7 +290,7 @@ if ($_SESSION['githubDiff']) {
|
||||
// If there are no diffs, ask user if they want to switch back to regular mode
|
||||
setTimeout(function(){
|
||||
if (parent.document.getElementById('|').parentNode.parentNode.parentNode.childNodes[2].childNodes.length==1) {
|
||||
if(top.ICEcoder.ask('There are no differences between the local and GitHub repo. Switch back to regular mode?')) {
|
||||
if(top.ICEcoder.ask('<?php echo $t['There are no...'];?>')) {
|
||||
top.ICEcoder.githubDiffToggle();
|
||||
} else {
|
||||
top.ICEcoder.showHide('hide',top.get('loadingMask'));
|
||||
@@ -300,7 +302,7 @@ if ($_SESSION['githubDiff']) {
|
||||
},4);
|
||||
} else {
|
||||
// There was an error, display HTTP error code and response message
|
||||
top.ICEcoder.message('Sorry, there was an error, code: '+err.error+'\n\n'+err.request.response);
|
||||
top.ICEcoder.message('<?php echo $t['Sorry, there was...'];?> '+err.error+'\n\n'+err.request.response);
|
||||
top.ICEcoder.showHide('hide',top.get('loadingMask'));
|
||||
}
|
||||
});
|
||||
@@ -364,7 +366,7 @@ if ($_SESSION['githubDiff']) {
|
||||
$pathPos = array_search($iceRoot,$iceGithubLocalPaths);
|
||||
if ($pathPos !== false) {
|
||||
?>
|
||||
if (top.ICEcoder.ask("Your local folder is empty, would you like to clone <?php echo $iceGithubRemotePaths[$pathPos];?>?")) {
|
||||
if (top.ICEcoder.ask("<?php echo $t['Your local folder...'];?> <?php echo $iceGithubRemotePaths[$pathPos];?>?")) {
|
||||
setTimeout(function() {
|
||||
top.ICEcoder.showHide('show',top.get('loadingMask'));
|
||||
top.ICEcoder.filesFrame.contentWindow.frames['fileControl'].location.href = "github.php?action=clone&csrf="+top.ICEcoder.csrf;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
include("headers.php");
|
||||
include("settings.php");
|
||||
$t = $text['github-manager'];
|
||||
|
||||
// If we have an action to perform
|
||||
if (!$demoMode && isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] && isset($_GET['action'])) {
|
||||
@@ -26,7 +27,7 @@ if (!$demoMode && isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] && isset
|
||||
if (is_writable($docRoot)) {
|
||||
mkdir($docRoot.$chosenLocal, 0705);
|
||||
} else {
|
||||
echo "<script>top.ICEcoder.message('Sorry, cannot create folder at\\n".$chosenLocal."');</script>";
|
||||
echo "<script>top.ICEcoder.message('".$t['Sorry, cannot create...']."\\n".$chosenLocal."');</script>";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,9 +55,9 @@ if (!$demoMode && isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] && isset
|
||||
// Hide this popup and reload file manager
|
||||
echo "<script>top.ICEcoder.showHide('hide',top.document.getElementById('blackMask'));top.ICEcoder.refreshFileManager();</script>";
|
||||
} else {
|
||||
echo "<script>top.ICEcoder.message('Cannot update config file. Please set public write permissions on lib/".$settingsFile." and try again');</script>";
|
||||
echo "<script>top.ICEcoder.message('".$t['Cannot update config...']." lib/".$settingsFile." ".$t['and try again']."');</script>";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -153,9 +154,9 @@ if (!$demoMode && isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] && isset
|
||||
// Finally, reload the iFrame screen for the user
|
||||
header("Location: github-manager.php?updatedGithubPaths&csrf=".$_SESSION["csrf"]);
|
||||
echo "<script>window.location='github-manager.php?updatedGithubPaths&csrf='+top.ICEcoder.csrf;</script>";
|
||||
die('saving github paths...');
|
||||
die($t['saving github paths']);
|
||||
} else {
|
||||
echo "<script>top.ICEcoder.message('Cannot update config file. Please set public write permissions on lib/".$settingsFile." and try again');</script>";
|
||||
echo "<script>top.ICEcoder.message('".$t['Cannot update config...']." lib/".$settingsFile." ".$t['and try again']."');</script>";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -172,7 +173,7 @@ if (!$demoMode && isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] && isset
|
||||
|
||||
<body class="githubManager">
|
||||
|
||||
<h1>github paths</h1>
|
||||
<h1><?php echo $t['github paths'];?></h1>
|
||||
|
||||
<div style="display: inline-block; width: 620px; height: 340px; overflow-y: auto">
|
||||
<?php
|
||||
@@ -181,25 +182,25 @@ if (!$demoMode && isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] && isset
|
||||
if (count($pathsLocal) > 0) {
|
||||
?>
|
||||
<div style="display: inline-block; width: 600px; margin-bottom: 30px">
|
||||
<h2>Choose existing path</h2><br>
|
||||
<h2><?php echo $t['Choose existing path'];?></h2><br>
|
||||
|
||||
<form id="githubUpdateForm" action="github-manager.php?action=update" method="POST">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="padding-left: 5px">Local path</td>
|
||||
<td style="padding-left: 5px">Remote GitHub path</td>
|
||||
<td style="padding-left: 5px"><?php echo $t['Local path'];?></td>
|
||||
<td style="padding-left: 5px"><?php echo $t['Remote GitHub path'];?></td>
|
||||
</tr>
|
||||
<?php
|
||||
for ($i=0; $i<count($pathsLocal); $i++) {
|
||||
echo '<tr>';
|
||||
echo '<td style="padding: 0 10px 8px 0"><input type="text" name="githubLocalPath'.$i.'" value="'.$pathsLocal[$i].'" style="width: 250px"></td>';
|
||||
echo '<td style="padding: 0 10px 8px 0"><input type="text" name="githubRemotePath'.$i.'" value="'.$pathsRemote[$i].'" style="width: 250px"></td>';
|
||||
echo '<td style="padding: 2px 0 8px 0"><div style="display: inline-block; padding: 5px; background: #2187e7; color: #fff; font-size: 12px; cursor: pointer" onclick="window.location=\'github-manager.php?action=choose&pathPair='.$i.'&csrf='.$_SESSION["csrf"].'\'">Choose</div></td>';
|
||||
echo '<td style="padding: 2px 0 8px 0"><div style="display: inline-block; padding: 5px; background: #2187e7; color: #fff; font-size: 12px; cursor: pointer" onclick="window.location=\'github-manager.php?action=choose&pathPair='.$i.'&csrf='.$_SESSION["csrf"].'\'">'.$t['Choose'].'</div></td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
echo '<tr>';
|
||||
echo '<td style="padding-top: 7px; color: #444">Set local and remote path to blanks to remove</td>';
|
||||
echo '<td style="padding: 3px 10px 8px 0; text-align: right"><div style="display: inline-block; padding: 5px; background: #2187e7; color: #fff; font-size: 12px; cursor: pointer" onclick="document.getElementById(\'githubUpdateForm\').submit()">Update</div></td>';
|
||||
echo '<td style="padding-top: 7px; color: #444">'.$t['Set local and...'].'</td>';
|
||||
echo '<td style="padding: 3px 10px 8px 0; text-align: right"><div style="display: inline-block; padding: 5px; background: #2187e7; color: #fff; font-size: 12px; cursor: pointer" onclick="document.getElementById(\'githubUpdateForm\').submit()">'.$t['Update'].'</div></td>';
|
||||
echo '</tr>';
|
||||
?>
|
||||
</table>
|
||||
@@ -211,32 +212,32 @@ if (!$demoMode && isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] && isset
|
||||
?>
|
||||
|
||||
<div style="display: inline-block; width: 600px">
|
||||
<h2>Add new path</h2><br>
|
||||
<h2><?php echo $t['Add new path'];?></h2><br>
|
||||
|
||||
<form id="githubAddForm" action="github-manager.php?action=add" method="POST">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="padding-left: 5px">Local path</td>
|
||||
<td style="padding-left: 5px">Remote GitHub path</td>
|
||||
<td style="padding-left: 5px"><?php echo $t['Local path'];?></td>
|
||||
<td style="padding-left: 5px"><?php echo $t['Remote GitHub path'];?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 0 10px 8px 0"><input type="text" name="githubLocalPathNEW" value="" style="width: 250px"></td>
|
||||
<td style="padding: 0 0 8px 0"><input type="text" name="githubRemotePathNEW" value="" style="width: 250px"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" style="padding: 3px 0 8px 0; text-align: right"><div style="display: inline-block; padding: 5px; background: #2187e7; color: #fff; font-size: 12px; cursor: pointer" onclick="document.getElementById('githubAddForm').submit()">Add</div></td>
|
||||
<td colspan="2" style="padding: 3px 0 8px 0; text-align: right"><div style="display: inline-block; padding: 5px; background: #2187e7; color: #fff; font-size: 12px; cursor: pointer" onclick="document.getElementById('githubAddForm').submit()"><?php echo $t['Add'];?></div></td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="hidden" name="csrf" value="<?php echo $_SESSION["csrf"]; ?>">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<h2 style="margin-bottom: 10px">Usage Info:</h2>
|
||||
<h2 style="margin-bottom: 10px"><?php echo $t['Usage Info'];?></h2>
|
||||
|
||||
<p style="color: #888; margin: 0 10px 10px 0">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.</p>
|
||||
<p style="color: #888; margin: 0 10px 10px 0">You can then choose a path pair and this then becomes your new root path in ICEcoder.</p>
|
||||
<p style="color: #888; margin: 0 10px 10px 0">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.</p>
|
||||
<p style="color: #888; margin: 0 10px 0 0">If you want to set another root path, this can be done in the Help > Settings screen.</p>
|
||||
<p style="color: #888; margin: 0 10px 10px 0"><?php echo $t['Enter relative local...'];?></p>
|
||||
<p style="color: #888; margin: 0 10px 10px 0"><?php echo $t['You can then...'];?></p>
|
||||
<p style="color: #888; margin: 0 10px 10px 0"><?php echo $t['The file manager...'];?></p>
|
||||
<p style="color: #888; margin: 0 10px 0 0"><?php echo $t['If you want...'];?></p>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
<?php
|
||||
include("headers.php");
|
||||
include("settings.php");
|
||||
$t = $text['github'];
|
||||
|
||||
// SSL check, as everything is over https
|
||||
$wrappers = stream_get_wrappers();
|
||||
$sslAvail = true;
|
||||
if (!extension_loaded('openssl') || !in_array('https', $wrappers)) {
|
||||
$sslAvail = false;
|
||||
echo "<script>top.ICEcoder.message('Sorry, you don\'t 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');top.ICEcoder.showHide('hide',top.get('loadingMask'));</script>";
|
||||
echo "<script>top.ICEcoder.message('".$t['Sorry, you do...']."');top.ICEcoder.showHide('hide',top.get('loadingMask'));</script>";
|
||||
die();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
<?php
|
||||
// Load common functions
|
||||
include_once(dirname(__FILE__)."/settings-common.php");
|
||||
$text = $_SESSION['text'];
|
||||
$t = $text['headers'];
|
||||
|
||||
// CSRF synchronizer token pattern, 32 chars
|
||||
if (!isset($_SESSION["csrf"])) {
|
||||
$_SESSION["csrf"] = md5(uniqid(mt_rand(), true));
|
||||
$_SESSION["csrf"] = md5(uniqid(mt_rand(), true));
|
||||
}
|
||||
|
||||
if (($_GET || $_POST) && (!isset($_REQUEST["csrf"]) || $_REQUEST["csrf"] !== $_SESSION["csrf"])) {
|
||||
$req = isset($_REQUEST["csrf"]) ? xssClean($_REQUEST["csrf"],"html") : "";
|
||||
die("Bad CSRF token. Please report the error info at https://github.com/mattpass/ICEcoder so it can be fixed.<br><br>
|
||||
die($t['Bad CSRF token...']."<br><br>
|
||||
CSRF issue:<br>
|
||||
REQUEST: ".$req."<br>
|
||||
SESSION: ".xssClean($_SESSION["csrf"],"html")."<br>
|
||||
FILE: ".xssClean($_SERVER["SCRIPT_NAME"],"html")."<br>
|
||||
GET: ".xssClean(var_export($_GET, true),"html")."<br>
|
||||
POST: ".xssClean(var_export($_POST, true),"html")."<br>
|
||||
<br>Many thanks!");
|
||||
POST: ".xssClean(var_export($_POST, true),"html"));
|
||||
}
|
||||
|
||||
// Set our security related headers
|
||||
|
||||
99
lib/help.php
99
lib/help.php
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
include("headers.php");
|
||||
include("settings.php");
|
||||
$t = $text['help'];
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
|
||||
@@ -14,63 +15,63 @@ include("settings.php");
|
||||
|
||||
<body class="help">
|
||||
|
||||
<h1 id="title">shortcuts</h1>
|
||||
<h1 id="title"><?php echo $t['shortcuts'];?></h1>
|
||||
|
||||
<?php $isMac = strpos($_SERVER['HTTP_USER_AGENT'], "Macintosh")>-1 ? true : false;?>
|
||||
<div style="display: inline-block; width: 365px; margin-right: 20px">
|
||||
<h2>Within document</h2>
|
||||
<h2><?php echo $t['Within document'];?></h2>
|
||||
<!-- This can only be CTRL+space as Cmd+space is a reserved apple shortcut -->
|
||||
<span class="key">Ctrl <span class="plus">+</span> Space</span> <span class="shortcut">Autocomplete / add snippet</span><br>
|
||||
<span class="key">Ctrl <span class="plus">+</span> Click <span class="plus">or</span> Alt <span class="plus">+</span> Drag</span> <span class="shortcut">Multiple select</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> ↑</span> <span class="shortcut">Move line up</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> ↓</span> <span class="shortcut">Move line down</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> +</span> <span class="shortcut">Duplicate line(s)</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> -</span> <span class="shortcut">Remove line(s)</span><br>
|
||||
<span class="key">Shift <span class="plus">+</span> Enter</span> <span class="shortcut">Insert line before</span><br>
|
||||
<span class="key">Alt <span class="plus">+</span> Enter</span> <span class="shortcut">Insert line after</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> i</span> <span class="shortcut">Search for selected <span class="info" title="Popups need to be enabled">[?]</span></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> j</span> <span class="shortcut">Jump to definition / jump back</span><br>
|
||||
<span class="key">Esc</span> <span class="shortcut">Comment / uncomment</span><br>
|
||||
<span class="key">Tab</span> <span class="shortcut">Insert tab / indent selected</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> d</span> <span class="shortcut">Wrap with <div></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> s</span> <span class="shortcut">Wrap with <span></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> p</span> <span class="shortcut">Wrap / unwrap with <p></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> a</span> <span class="shortcut">Wrap / unwrap with <a></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> b</span> <span class="shortcut">Wrap / unwrap with <b></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> i</span> <span class="shortcut">Wrap / unwrap with <i></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> g</span> <span class="shortcut">Wrap / unwrap with <strong></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> e</span> <span class="shortcut">Wrap / unwrap with <em></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> nums 1 - 3</span> <span class="shortcut">Wrap/unwrap with <h1> - <h3></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> Enter</span> <span class="shortcut">End line with <br></span><br><br>
|
||||
<h2>On Tabs</h2>
|
||||
<span class="key">Middle click</span> <span class="shortcut">Close tab</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> <?php echo $t['Space'];?></span> <span class="shortcut"><?php echo $t['Autocomplete add snippet'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> <?php echo $t['Click'];?> <span class="plus"><?php echo $t['or'];?></span> Alt <span class="plus">+</span> <?php echo $t['Drag'];?></span> <span class="shortcut"><?php echo $t['Multiple select'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> ↑</span> <span class="shortcut"><?php echo $t['Move line up'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> ↓</span> <span class="shortcut"><?php echo $t['Move line down'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> +</span> <span class="shortcut"><?php echo $t['Duplicate lines'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> -</span> <span class="shortcut"><?php echo $t['Remove lines'];?></span><br>
|
||||
<span class="key">Shift <span class="plus">+</span> Enter</span> <span class="shortcut"><?php echo $t['Insert line before'];?></span><br>
|
||||
<span class="key">Alt <span class="plus">+</span> Enter</span> <span class="shortcut"><?php echo $t['Insert line after'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> i</span> <span class="shortcut"><?php echo $t['Search for selected'];?> <span class="info" title="Popups need to be enabled">[?]</span></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> j</span> <span class="shortcut"><?php echo $t['Jump to definition'];?></span><br>
|
||||
<span class="key">Esc</span> <span class="shortcut"><?php echo $t['Comment uncomment'];?></span><br>
|
||||
<span class="key">Tab</span> <span class="shortcut"><?php echo $t['Insert tab indent'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> d</span> <span class="shortcut"><?php echo $t['Wrap with div'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> s</span> <span class="shortcut"><?php echo $t['Wrap with span'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> p</span> <span class="shortcut"><?php echo $t['Wrap unwrap p'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> a</span> <span class="shortcut"><?php echo $t['Wrap unwrap a'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> b</span> <span class="shortcut"><?php echo $t['Wrap unwrap b'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> i</span> <span class="shortcut"><?php echo $t['Wrap unwrap i'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> g</span> <span class="shortcut"><?php echo $t['Wrap unwrap strong'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> e</span> <span class="shortcut"><?php echo $t['Wrap unwrap em'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> 1, 2 <?php echo $t['or'];?> 3</span> <span class="shortcut"><?php echo $t['Wrap unwrap h1...'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Alt <span class="plus">+</span> Enter</span> <span class="shortcut"><?php echo $t['End line with...'];?></span><br><br>
|
||||
<h2><?php echo $t['On Tabs'];?></h2>
|
||||
<span class="key"><?php echo $t['Middle click'];?></span> <span class="shortcut"><?php echo $t['Close tab'];?></span><br>
|
||||
</div>
|
||||
|
||||
<div style="display: inline-block; width: 365px">
|
||||
<h2>Within file manager</h2>
|
||||
<span class="key">Left click</span> <span class="shortcut">Select file / folder</span><br>
|
||||
<span class="key">Double click / click (mobile)</span> <span class="shortcut">Open file</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> left click</span> <span class="shortcut">Multiple select</span><br>
|
||||
<span class="key">Shift <span class="plus">+</span> left click</span> <span class="shortcut">Range select</span><br>
|
||||
<span class="key">Right click</span> <span class="shortcut">Options for selected</span><br>
|
||||
<span class="key">Delete</span> <span class="shortcut">Delete selected</span><br><br>
|
||||
<h2><?php echo $t['Within file manager'];?></h2>
|
||||
<span class="key"><?php echo $t['Left click'];?></span> <span class="shortcut"><?php echo $t['Select file folder'];?></span><br>
|
||||
<span class="key"><?php echo $t['Double click tap...'];?></span> <span class="shortcut"><?php echo $t['Open file'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> <?php echo strtolower($t['Left click']);?></span> <span class="shortcut"><?php echo $t['Multiple select'];?></span><br>
|
||||
<span class="key">Shift <span class="plus">+</span> <?php echo strtolower($t['Left click']);?></span> <span class="shortcut"><?php echo $t['Range select'];?></span><br>
|
||||
<span class="key"><?php echo $t['Right click'];?></span> <span class="shortcut"><?php echo $t['Options for selected'];?></span><br>
|
||||
<span class="key">Delete</span> <span class="shortcut"><?php echo $t['Delete selected'];?></span><br><br>
|
||||
|
||||
<h2>Anywhere</h2>
|
||||
<span class="key">Middle scrollwheel</span> <span class="shortcut">Next/previous tab</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> →</span> <span class="shortcut">Next tab</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> ←</span> <span class="shortcut">Previous tab</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> +</span> <span class="shortcut">New tab</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> -</span> <span class="shortcut">Close current tab</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> o</span> <span class="shortcut">Open file prompt</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> f</span> <span class="shortcut">Find</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> g</span> <span class="shortcut">Focus on Go to line input</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> s</span> <span class="shortcut">Save</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Shift <span class="plus">+</span> s</span> <span class="shortcut">Save as...</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Enter</span> <span class="shortcut">View webpage <span class="info" title="Popups need to be enabled">[?]</span></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> `</span> <span class="shortcut">Contract/expand file manager</span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> .</span> <span class="shortcut">Fold/unfold current line</span><br>
|
||||
<span class="key">Space</span> <span class="shortcut">Refocus on document</span><br>
|
||||
<span class="key">Esc</span> <span class="shortcut">Cancel tasks</span><br><br>
|
||||
<h2><?php echo $t['Anywhere'];?></h2>
|
||||
<span class="key"><?php echo $t['Middle scrollwheel'];?></span> <span class="shortcut"><?php echo $t['Next previous tab'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> →</span> <span class="shortcut"><?php echo $t['Next tab'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> ←</span> <span class="shortcut"><?php echo $t['Previous tab'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> +</span> <span class="shortcut"><?php echo $t['New tab'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> -</span> <span class="shortcut"><?php echo $t['Close current tab'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> o</span> <span class="shortcut"><?php echo $t['Open file prompt'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> f</span> <span class="shortcut"><?php echo $t['Find'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> g</span> <span class="shortcut"><?php echo $t['Focus on Go...'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> s</span> <span class="shortcut"><?php echo $t['Save'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Shift <span class="plus">+</span> s</span> <span class="shortcut"><?php echo $t['Save as'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> Enter</span> <span class="shortcut"><?php echo $t['View webpage'];?> <span class="info" title="Popups need to be enabled">[?]</span></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> `</span> <span class="shortcut"><?php echo $t['Contract expand file...'];?></span><br>
|
||||
<span class="key"><?php echo $isMac ? "Cmd" : "Ctrl";?> <span class="plus">+</span> .</span> <span class="shortcut"><?php echo $t['Fold unfold current...'];?></span><br>
|
||||
<span class="key"><?php echo $t['Space'];?></span> <span class="shortcut"><?php echo $t['Refocus on document'];?></span><br>
|
||||
<span class="key">Esc</span> <span class="shortcut"><?php echo $t['Cancel tasks'];?></span><br><br>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
include("headers.php");
|
||||
include("settings.php");
|
||||
$t = $text['multiple-results'];
|
||||
?>
|
||||
<?php
|
||||
if(isset($_GET['selectedFiles'])) {
|
||||
@@ -32,7 +33,7 @@ if(isset($_GET['selectedFiles'])) {
|
||||
} else {
|
||||
echo 'replaceAll()';
|
||||
}
|
||||
?>" style="opacity: 0.1"><?php echo isset($_GET['target']) && strpos($_GET['target'],"filenames") ? 'rename all' : 'replace all';?></div>
|
||||
?>" style="opacity: 0.1"><?php echo isset($_GET['target']) && strpos($_GET['target'],"filenames") ? $t['rename all'] : $t['replace all'];?></div>
|
||||
<?php ;}; ?>
|
||||
|
||||
<script>
|
||||
@@ -48,7 +49,7 @@ findText = top.findAndReplace.find.value.toLowerCase();
|
||||
$findText = str_replace("ICEcoder:","",str_replace("'","\'",$_GET['find']));
|
||||
// Find in open docs?
|
||||
if (!isset($_GET['target'])) {
|
||||
$targetName = "document";
|
||||
$targetName = $t['document'];
|
||||
?>
|
||||
var startTab = top.ICEcoder.selectedTab;
|
||||
var rExp = new RegExp(findText,"gi");
|
||||
@@ -57,9 +58,9 @@ for (var i=1;i<=top.ICEcoder.openFiles.length;i++) {
|
||||
var cM = top.ICEcoder.getcMInstance();
|
||||
var content = cM.getValue();
|
||||
if (content.match(rExp)) {
|
||||
resultsDisplay += '<a href="javascript:gotoTab('+i+')">'+ top.ICEcoder.openFiles[i-1]+ '</a><br><div id="foundCount'+i+'">Found '+content.match(rExp).length+' times</div>';
|
||||
resultsDisplay += '<a href="javascript:gotoTab('+i+')">'+ top.ICEcoder.openFiles[i-1]+ '</a><br><div id="foundCount'+i+'"><?php echo $t['Found'];?> '+content.match(rExp).length+' <?php echo $t['times'];?></div>';
|
||||
<?php if (isset($_GET['replace'])) { ?>
|
||||
resultsDisplay += '<div class="replace" id="replace" onClick="replaceSingle('+i+');this.style.display=\'none\'">replace</div>';
|
||||
resultsDisplay += '<div class="replace" id="replace" onClick="replaceSingle('+i+');this.style.display=\'none\'"><?php echo $t['replace'];?></div>';
|
||||
<?php ;}; ?>
|
||||
resultsDisplay += '<hr>';
|
||||
foundArray.push(i);
|
||||
@@ -72,7 +73,7 @@ if (startTab!=top.ICEcoder.selectedTab) {
|
||||
// Find in files or filenames
|
||||
} else {
|
||||
if (strpos($_GET['target'],"filenames")>0) {
|
||||
$targetName = "file/folder";
|
||||
$targetName = $t['file folder'];
|
||||
?>
|
||||
var spansArray = top.ICEcoder.filesFrame.contentWindow.document.getElementsByTagName('span');
|
||||
for (var i=0;i<spansArray.length;i++) {
|
||||
@@ -99,11 +100,11 @@ if (startTab!=top.ICEcoder.selectedTab) {
|
||||
<?php if (!isset($_GET['replace'])) { ?>
|
||||
resultsDisplay += '<div id="foundCount'+i+'">'+spansArray[i].innerHTML+'</div>';
|
||||
<?php ;} else { ?>
|
||||
resultsDisplay += '<div id="foundCount'+i+'">'+spansArray[i].innerHTML+', rename to '+targetURL.replace(/\|/g,"/").replace(/_perms/g,"").replace(/<?php echo str_replace("/","\/",strtolower($findText)); ?>/g,"<b><?php if(isset($_GET['replace'])) {echo strtolower(strClean($_GET['replace']));};?></b>")+'</div>';
|
||||
resultsDisplay += '<div id="foundCount'+i+'">'+spansArray[i].innerHTML+', <?php echo $t['rename to'];?> '+targetURL.replace(/\|/g,"/").replace(/_perms/g,"").replace(/<?php echo str_replace("/","\/",strtolower($findText)); ?>/g,"<b><?php if(isset($_GET['replace'])) {echo strtolower(strClean($_GET['replace']));};?></b>")+'</div>';
|
||||
<?php
|
||||
;};
|
||||
if (isset($_GET['replace'])) { ?>
|
||||
resultsDisplay += '<div class="replace" id="replace" onClick="renameSingle('+i+');this.style.display=\'none\'">rename</div>';
|
||||
resultsDisplay += '<div class="replace" id="replace" onClick="renameSingle('+i+');this.style.display=\'none\'"><?php echo $t['rename'];?></div>';
|
||||
<?php ;}; ?>
|
||||
resultsDisplay += '<hr>';
|
||||
foundArray.push(i);
|
||||
@@ -112,7 +113,7 @@ if (startTab!=top.ICEcoder.selectedTab) {
|
||||
}
|
||||
<?php
|
||||
} else {
|
||||
$targetName = "file";
|
||||
$targetName = $t['file'];
|
||||
$r = 0;
|
||||
function phpGrep($q, $path, $base) {
|
||||
$fp = opendir($path);
|
||||
@@ -146,9 +147,9 @@ if (startTab!=top.ICEcoder.selectedTab) {
|
||||
}
|
||||
if (!$bFile && (count($selectedFiles)==0 || count($selectedFiles)>0 && $foundInSelFile)) {
|
||||
$ret .= "<a href=\\\"javascript:top.ICEcoder.openFile('".$fullPath."');top.ICEcoder.showHide('hide',top.get('blackMask'))\\\">";
|
||||
$ret .= str_replace($base,"",$fullPath)."</a><div id=\\\"foundCount".$r."\\\">Found ".substr_count(strtolower(toUTF8noBOM(file_get_contents($fullPath,false,$context),false)),$q)." times</div>";
|
||||
$ret .= str_replace($base,"",$fullPath)."</a><div id=\\\"foundCount".$r."\\\">".$t['Found']." ".substr_count(strtolower(toUTF8noBOM(file_get_contents($fullPath,false,$context),false)),$q)." ".$t['times']."</div>";
|
||||
if (isset($_GET['replace'])) {
|
||||
$ret .= "<div class=\\\"replace\\\" id=\\\"replace\\\" onClick=\\\"replaceInFileSingle('".$fullPath."');this.style.display=\'none\'\\\">replace</div>";
|
||||
$ret .= "<div class=\\\"replace\\\" id=\\\"replace\\\" onClick=\\\"replaceInFileSingle('".$fullPath."');this.style.display=\'none\'\\\">".$t['replace']."</div>";
|
||||
};
|
||||
$ret .= '<hr>';
|
||||
echo 'foundArray.push("'.$fullPath.'");'.PHP_EOL;
|
||||
@@ -168,14 +169,14 @@ if (startTab!=top.ICEcoder.selectedTab) {
|
||||
?>
|
||||
showHide = foundArray.length==0 ? "hide" : "show";
|
||||
top.ICEcoder.showHide(showHide,top.get('blackMask'));
|
||||
if (foundArray.length==0) {top.ICEcoder.message('No matches found')};
|
||||
if (foundArray.length==0) {top.ICEcoder.message('<?php echo $t['No matches found'];?>')};
|
||||
<?php if (isset($_GET['replace'])) { ?>
|
||||
if (foundArray.length!=0) {document.getElementById('replaceAll').style.opacity = 1};
|
||||
<?php ;}; ?>
|
||||
plural = foundArray.length >= 2 ? "s" : "";
|
||||
targetName = "<?php echo $targetName;?>";
|
||||
selectedText = foundInSelected ? "selected " : "";
|
||||
document.getElementById('title').innerHTML = findText.replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<").replace(/"/g,""").replace(/'/g,"'")+" found in "+foundArray.length+" "+selectedText+targetName+plural;
|
||||
selectedText = foundInSelected ? "<?php echo $t['selected'];?> " : "";
|
||||
document.getElementById('title').innerHTML = findText.replace(/&/g,"&").replace(/>/g,">").replace(/</g,"<").replace(/"/g,""").replace(/'/g,"'")+" <?php echo $t['found in'];?> "+foundArray.length+" "+selectedText+targetName+plural;
|
||||
document.getElementById('results').innerHTML = resultsDisplay;
|
||||
|
||||
var gotoTab = function(tab) {
|
||||
@@ -188,7 +189,7 @@ var replaceSingle = function(tab) {
|
||||
cM = top.ICEcoder.getcMInstance();
|
||||
content = cM.getValue();
|
||||
cM.setValue(cM.getValue().replace(rExp,top.get('replace').value));
|
||||
document.getElementById('foundCount'+tab).innerHTML = document.getElementById('foundCount'+tab).innerHTML.replace('Found','Replaced');
|
||||
document.getElementById('foundCount'+tab).innerHTML = document.getElementById('foundCount'+tab).innerHTML.replace('<?php echo $t['Found'];?>','<?php echo $t['Replaced'];?>');
|
||||
}
|
||||
|
||||
var replaceAll = function() {
|
||||
|
||||
Reference in New Issue
Block a user