mirror of https://github.com/itflow-org/itflow
Merge branch 'master' into ticket-add-to-invoice-drafts
This commit is contained in:
commit
c4bfb314a2
4
ajax.php
4
ajax.php
|
|
@ -487,3 +487,7 @@ if (isset($_GET['get_totp_token_via_id'])) {
|
|||
mysqli_query($mysqli,"INSERT INTO logs SET log_type = 'Login', log_action = 'View TOTP', log_description = '$session_name viewed login TOTP code for $name', log_ip = '$session_ip', log_user_agent = '$session_user_agent', log_client_id = $client_id, log_user_id = $session_user_id, log_entity_id = $login_id");
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_GET['get_readable_pass'])) {
|
||||
echo GenerateReadablePassword(4);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,12 @@ if (isset($_GET['contact_id'])) {
|
|||
$email = mysqli_real_escape_string($mysqli, $_GET['contact_email']);
|
||||
$sql = mysqli_query($mysqli, "SELECT * FROM contacts WHERE contact_email = '$email' AND contact_client_id LIKE '$client_id'");
|
||||
|
||||
} elseif (isset($_GET['contact_phone_or_mobile'])) {
|
||||
// Specific contact via phone number or mobile (single)
|
||||
|
||||
$phone_or_mob = mysqli_real_escape_string($mysqli, $_GET['contact_phone_or_mobile']);
|
||||
$sql = mysqli_query($mysqli, "SELECT * FROM contacts WHERE contact_mobile = '$phone_or_mob' OR contact_phone = '$phone_or_mob' AND contact_client_id LIKE '$client_id' LIMIT 1");
|
||||
|
||||
} else {
|
||||
// All contacts
|
||||
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@
|
|||
while ($row = mysqli_fetch_array($sql)) {
|
||||
$location_id = intval($row['location_id']);
|
||||
$location_name = nullable_htmlentities($row['location_name']);
|
||||
?>
|
||||
?>
|
||||
<option value="<?php echo $location_id; ?>"><?php echo $location_name; ?></option>
|
||||
<?php } ?>
|
||||
|
||||
|
|
@ -137,7 +137,7 @@
|
|||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="contactImportantCheckbox" name="contact_important" value="1" >
|
||||
<input type="checkbox" class="custom-control-input" id="contactImportantCheckbox" name="contact_important" value="1">
|
||||
<label class="custom-control-label" for="contactImportantCheckbox">Important</label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -145,7 +145,7 @@
|
|||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="contactBillingCheckbox" name="contact_billing" value="1" >
|
||||
<input type="checkbox" class="custom-control-input" id="contactBillingCheckbox" name="contact_billing" value="1">
|
||||
<label class="custom-control-label" for="contactBillingCheckbox">Billing</label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -153,7 +153,7 @@
|
|||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="contactTechnicalCheckbox" name="contact_technical" value="1" >
|
||||
<input type="checkbox" class="custom-control-input" id="contactTechnicalCheckbox" name="contact_technical" value="1">
|
||||
<label class="custom-control-label" for="contactTechnicalCheckbox">Technical</label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -183,36 +183,40 @@
|
|||
<input type="text" class="form-control" name="pin" placeholder="Security code or pin">
|
||||
</div>
|
||||
</div>
|
||||
<?php if($config_client_portal_enable == 1) { ?>
|
||||
<div class="authForm">
|
||||
<div class="form-group">
|
||||
<label>Login</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-user-circle"></i></span>
|
||||
<?php if ($config_client_portal_enable == 1) { ?>
|
||||
<div class="authForm">
|
||||
<div class="form-group">
|
||||
<label>Login</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-user-circle"></i></span>
|
||||
</div>
|
||||
<select class="form-control select2 authMethod" name="auth_method">
|
||||
<option value="">- None -</option>
|
||||
<option value="local">Local</option>
|
||||
<option value="azure">Azure</option>
|
||||
</select>
|
||||
</div>
|
||||
<select class="form-control select2 authMethod" name="auth_method">
|
||||
<option value="">- None -</option>
|
||||
<option value="local">Local</option>
|
||||
<option value="azure">Azure</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Password Form Group (Initially hidden) -->
|
||||
<div class="form-group passwordGroup" style="display: none;">
|
||||
<label>Password</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-key"></i></span>
|
||||
</div>
|
||||
<input type="password" class="form-control" data-toggle="password" name="contact_password" placeholder="Enter a password" autocomplete="new-password">
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-eye"></i></span>
|
||||
<div class="form-group passwordGroup" style="display: none;">
|
||||
<label>Password</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-lock"></i></span>
|
||||
</div>
|
||||
<input type="password" class="form-control" data-toggle="password" id="password-add" name="password" placeholder="Password" autocomplete="new-password">
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-eye"></i></span>
|
||||
</div>
|
||||
<div class="input-group-append">
|
||||
<button type="button" class="btn btn-default" onclick="generatePassword('add')">
|
||||
<i class="fa fa-fw fa-question"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -574,6 +574,30 @@ if (isset($_GET['contact_id'])) {
|
|||
|
||||
<!-- JavaScript to Show/Hide Password Form Group -->
|
||||
<script>
|
||||
|
||||
function generatePassword(type, id) {
|
||||
var url = '/ajax.php?get_readable_pass=true';
|
||||
|
||||
// Make an AJAX request to the server
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', url, true);
|
||||
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState == 4 && xhr.status == 200) {
|
||||
var password = xhr.responseText;
|
||||
|
||||
// Set the password value based on the type
|
||||
if (type == "add") {
|
||||
document.getElementById("password-add").value = password;
|
||||
} else if (type == "edit") {
|
||||
console.log("password-edit-"+id.toString());
|
||||
document.getElementById("password-edit-"+id.toString()).value = password;
|
||||
}
|
||||
}
|
||||
};
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$('.authMethod').on('change', function() {
|
||||
var $form = $(this).closest('.authForm');
|
||||
|
|
|
|||
|
|
@ -126,8 +126,10 @@
|
|||
while ($row = mysqli_fetch_array($sql_locations)) {
|
||||
$location_id_select = intval($row['location_id']);
|
||||
$location_name_select = nullable_htmlentities($row['location_name']);
|
||||
?>
|
||||
<option <?php if ($contact_location_id == $location_id_select) { echo "selected"; } ?> value="<?php echo $location_id_select; ?>"><?php echo $location_name_select; ?></option>
|
||||
?>
|
||||
<option <?php if ($contact_location_id == $location_id_select) {
|
||||
echo "selected";
|
||||
} ?> value="<?php echo $location_id_select; ?>"><?php echo $location_name_select; ?></option>
|
||||
<?php } ?>
|
||||
|
||||
</select>
|
||||
|
|
@ -139,7 +141,7 @@
|
|||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="contactImportantCheckbox<?php echo $contact_id; ?>" name="contact_important" value="1" <?php if ($contact_important == 1) { echo "checked"; } ?> >
|
||||
<input type="checkbox" class="custom-control-input" id="contactImportantCheckbox<?php echo $contact_id; ?>" name="contact_important" value="1" <?php if ($contact_important == 1) { echo "checked"; } ?>>
|
||||
<label class="custom-control-label" for="contactImportantCheckbox<?php echo $contact_id; ?>">Important</label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -147,7 +149,7 @@
|
|||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="contactBillingCheckbox<?php echo $contact_id; ?>" name="contact_billing" value="1" <?php if ($contact_billing == 1) { echo "checked"; } ?> >
|
||||
<input type="checkbox" class="custom-control-input" id="contactBillingCheckbox<?php echo $contact_id; ?>" name="contact_billing" value="1" <?php if ($contact_billing == 1) { echo "checked"; } ?>>
|
||||
<label class="custom-control-label" for="contactBillingCheckbox<?php echo $contact_id; ?>">Billing</label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -155,7 +157,7 @@
|
|||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="contactTechnicalCheckbox<?php echo $contact_id; ?>" name="contact_technical" value="1" <?php if ($contact_technical == 1) { echo "checked"; } ?> >
|
||||
<input type="checkbox" class="custom-control-input" id="contactTechnicalCheckbox<?php echo $contact_id; ?>" name="contact_technical" value="1" <?php if ($contact_technical == 1) { echo "checked"; } ?>>
|
||||
<label class="custom-control-label" for="contactTechnicalCheckbox<?php echo $contact_id; ?>">Technical</label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -177,40 +179,44 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<?php if($config_client_portal_enable == 1) { ?>
|
||||
<div class="authForm">
|
||||
<div class="form-group">
|
||||
<label>Login</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-user-circle"></i></span>
|
||||
<?php if ($config_client_portal_enable == 1) { ?>
|
||||
<div class="authForm">
|
||||
<div class="form-group">
|
||||
<label>Login</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-user-circle"></i></span>
|
||||
</div>
|
||||
<select class="form-control select2 authMethod" name="auth_method">
|
||||
<option value="">- None -</option>
|
||||
<option value="local" <?php if ($auth_method == "local") { echo "selected"; } ?>>Local</option>
|
||||
<option value="azure" <?php if ($auth_method == "azure") { echo "selected"; } ?>>Azure</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group passwordGroup" style="display: none;">
|
||||
<label>Password <strong class="text-danger">*</strong></label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-lock"></i></span>
|
||||
</div>
|
||||
<input type="password" class="form-control" data-toggle="password" id="password-edit-<?php echo $contact_id; ?>" name="password" placeholder="Password" autocomplete="new-password">
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-eye"></i></span>
|
||||
</div>
|
||||
<div class="input-group-append">
|
||||
<button type="button" class="btn btn-default" onclick="generatePassword('edit', <?php echo $contact_id; ?>)">
|
||||
<i class="fa fa-fw fa-question"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<select class="form-control select2 authMethod" name="auth_method">
|
||||
<option value="">- None -</option>
|
||||
<option value="local" <?php if ($auth_method == "local") {echo "selected";} ?>>Local</option>
|
||||
<option value="azure" <?php if ($auth_method == "azure") {echo "selected";} ?>>Azure</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group passwordGroup" style="display: none;">
|
||||
<label>Password</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-key"></i></span>
|
||||
</div>
|
||||
<input type="password" class="form-control" data-toggle="password" name="contact_password" placeholder="Leave blank for no change" autocomplete="new-password" minlength="8">
|
||||
<div class="input-group-append">
|
||||
<span class="input-group-text"><i class="fa fa-fw fa-eye"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-check">
|
||||
<input type="checkbox" class="form-check-input" name="send_email" value="1" />
|
||||
<label class="form-check-label">Send user e-mail with login details?</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-check">
|
||||
<input type="checkbox" class="form-check-input" name="send_email" value="1"/>
|
||||
<label class="form-check-label">Send user e-mail with login details?</label>
|
||||
</div>
|
||||
|
||||
<?php } ?>
|
||||
|
||||
|
|
@ -253,4 +259,4 @@
|
|||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -241,12 +241,36 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
|||
</table>
|
||||
</div>
|
||||
<?php require_once "pagination.php";
|
||||
?>
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- JavaScript to Show/Hide Password Form Group -->
|
||||
<script>
|
||||
|
||||
function generatePassword(type, id) {
|
||||
var url = '/ajax.php?get_readable_pass=true';
|
||||
|
||||
// Make an AJAX request to the server
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', url, true);
|
||||
|
||||
xhr.onreadystatechange = function () {
|
||||
if (xhr.readyState == 4 && xhr.status == 200) {
|
||||
var password = xhr.responseText;
|
||||
|
||||
// Set the password value based on the type
|
||||
if (type == "add") {
|
||||
document.getElementById("password-add").value = password;
|
||||
} else if (type == "edit") {
|
||||
console.log("password-edit-"+id.toString());
|
||||
document.getElementById("password-edit-"+id.toString()).value = password;
|
||||
}
|
||||
}
|
||||
};
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$('.authMethod').on('change', function() {
|
||||
var $form = $(this).closest('.authForm');
|
||||
|
|
@ -257,6 +281,7 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
|||
}
|
||||
});
|
||||
$('.authMethod').trigger('change');
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -50,7 +50,9 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
|||
|
||||
<div class="col-md-4">
|
||||
<div class="input-group mb-3 mb-md-0">
|
||||
<input type="search" class="form-control" name="q" value="<?php if (isset($q)) { echo stripslashes(nullable_htmlentities($q)); } ?>" placeholder="Search Logins">
|
||||
<input type="search" class="form-control" name="q" value="<?php if (isset($q)) {
|
||||
echo stripslashes(nullable_htmlentities($q));
|
||||
} ?>" placeholder="Search Logins">
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-dark"><i class="fa fa-search"></i></button>
|
||||
</div>
|
||||
|
|
@ -67,107 +69,110 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
|||
<hr>
|
||||
<div class="table-responsive-sm">
|
||||
<table class="table table-striped table-borderless table-hover">
|
||||
<thead class="text-dark <?php if ($num_rows[0] == 0) { echo "d-none"; } ?>">
|
||||
<tr>
|
||||
<th><a class="text-secondary" href="?<?php echo $url_query_strings_sort; ?>&sort=login_name&order=<?php echo $disp; ?>">Name</a></th>
|
||||
<th><a class="text-secondary" href="?<?php echo $url_query_strings_sort; ?>&sort=login_description&order=<?php echo $disp; ?>">Description</a></th>
|
||||
<th>Username</th>
|
||||
<th>Password</th>
|
||||
<th>OTP</th>
|
||||
<th><a class="text-secondary" href="?<?php echo $url_query_strings_sort; ?>&sort=login_uri&order=<?php echo $disp; ?>">URI</a></th>
|
||||
<th class="text-center">Action</th>
|
||||
</tr>
|
||||
<thead class="text-dark <?php if ($num_rows[0] == 0) {
|
||||
echo "d-none";
|
||||
} ?>">
|
||||
<tr>
|
||||
<th><a class="text-secondary" href="?<?php echo $url_query_strings_sort; ?>&sort=login_name&order=<?php echo $disp; ?>">Name</a></th>
|
||||
<th><a class="text-secondary" href="?<?php echo $url_query_strings_sort; ?>&sort=login_description&order=<?php echo $disp; ?>">Description</a></th>
|
||||
<th>Username</th>
|
||||
<th>Password</th>
|
||||
<th>OTP</th>
|
||||
<th><a class="text-secondary" href="?<?php echo $url_query_strings_sort; ?>&sort=login_uri&order=<?php echo $disp; ?>">URI</a></th>
|
||||
<th class="text-center">Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
<?php
|
||||
|
||||
while ($row = mysqli_fetch_array($sql)) {
|
||||
$login_id = intval($row['login_id']);
|
||||
$login_name = nullable_htmlentities($row['login_name']);
|
||||
$login_description = nullable_htmlentities($row['login_description']);
|
||||
if (empty($login_description)) {
|
||||
$login_description_display = "-";
|
||||
} else {
|
||||
$login_description_display = $login_description;
|
||||
}
|
||||
$login_uri = nullable_htmlentities($row['login_uri']);
|
||||
if (empty($login_uri)) {
|
||||
$login_uri_display = "-";
|
||||
} else {
|
||||
$login_uri_display = "$login_uri<button class='btn btn-sm clipboardjs' data-clipboard-text='$login_uri'><i class='far fa-copy text-secondary'></i></button><a href='$login_uri' target='_blank'><i class='fa fa-external-link-alt text-secondary'></i></a>";
|
||||
}
|
||||
$login_username = nullable_htmlentities(decryptLoginEntry($row['login_username']));
|
||||
if (empty($login_username)) {
|
||||
$login_username_display = "-";
|
||||
} else {
|
||||
$login_username_display = "$login_username<button class='btn btn-sm clipboardjs' data-clipboard-text='$login_username'><i class='far fa-copy text-secondary'></i></button>";
|
||||
}
|
||||
$login_password = nullable_htmlentities(decryptLoginEntry($row['login_password']));
|
||||
$login_otp_secret = nullable_htmlentities($row['login_otp_secret']);
|
||||
$login_id_with_secret = '"' . $row['login_id'] . '","' . $row['login_otp_secret'] . '"';
|
||||
if (empty($login_otp_secret)) {
|
||||
$otp_display = "-";
|
||||
} else {
|
||||
$otp_display = "<span onmouseenter='showOTPViaLoginID($login_id)'><i class='far fa-clock'></i> <span id='otp_$login_id'><i>Hover..</i></span></span>";
|
||||
}
|
||||
$login_note = nullable_htmlentities($row['login_note']);
|
||||
$login_important = intval($row['login_important']);
|
||||
$login_contact_id = intval($row['login_contact_id']);
|
||||
$login_vendor_id = intval($row['login_vendor_id']);
|
||||
$login_asset_id = intval($row['login_asset_id']);
|
||||
$login_software_id = intval($row['login_software_id']);
|
||||
while ($row = mysqli_fetch_array($sql)) {
|
||||
$login_id = intval($row['login_id']);
|
||||
$login_name = nullable_htmlentities($row['login_name']);
|
||||
$login_description = nullable_htmlentities($row['login_description']);
|
||||
if (empty($login_description)) {
|
||||
$login_description_display = "-";
|
||||
} else {
|
||||
$login_description_display = $login_description;
|
||||
}
|
||||
$login_uri = nullable_htmlentities($row['login_uri']);
|
||||
if (empty($login_uri)) {
|
||||
$login_uri_display = "-";
|
||||
} else {
|
||||
$login_uri_display = "$login_uri<button class='btn btn-sm clipboardjs' data-clipboard-text='$login_uri'><i class='far fa-copy text-secondary'></i></button><a href='$login_uri' target='_blank'><i class='fa fa-external-link-alt text-secondary'></i></a>";
|
||||
}
|
||||
$login_username = nullable_htmlentities(decryptLoginEntry($row['login_username']));
|
||||
if (empty($login_username)) {
|
||||
$login_username_display = "-";
|
||||
} else {
|
||||
$login_username_display = "$login_username<button class='btn btn-sm clipboardjs' data-clipboard-text='$login_username'><i class='far fa-copy text-secondary'></i></button>";
|
||||
}
|
||||
$login_password = nullable_htmlentities(decryptLoginEntry($row['login_password']));
|
||||
$login_otp_secret = nullable_htmlentities($row['login_otp_secret']);
|
||||
$login_id_with_secret = '"' . $row['login_id'] . '","' . $row['login_otp_secret'] . '"';
|
||||
if (empty($login_otp_secret)) {
|
||||
$otp_display = "-";
|
||||
} else {
|
||||
$otp_display = "<span onmouseenter='showOTPViaLoginID($login_id)'><i class='far fa-clock'></i> <span id='otp_$login_id'><i>Hover..</i></span></span>";
|
||||
}
|
||||
$login_note = nullable_htmlentities($row['login_note']);
|
||||
$login_important = intval($row['login_important']);
|
||||
$login_contact_id = intval($row['login_contact_id']);
|
||||
$login_vendor_id = intval($row['login_vendor_id']);
|
||||
$login_asset_id = intval($row['login_asset_id']);
|
||||
$login_software_id = intval($row['login_software_id']);
|
||||
|
||||
?>
|
||||
<tr class="<?php if(!empty($login_important)) { echo "text-bold"; }?>">
|
||||
<td>
|
||||
<i class="fa fa-fw fa-key text-secondary"></i>
|
||||
<a class="text-dark" href="#" data-toggle="modal" data-target="#editLoginModal<?php echo $login_id; ?>">
|
||||
<?php echo $login_name; ?>
|
||||
</a>
|
||||
</td>
|
||||
<td><?php echo $login_description_display; ?></td>
|
||||
<td><?php echo $login_username_display; ?></td>
|
||||
<td>
|
||||
<a tabindex="0" href="#" data-toggle="popover" data-trigger="focus" data-placement="top" data-content="<?php echo $login_password; ?>"><i class="fas fa-2x fa-ellipsis-h text-secondary"></i><i class="fas fa-2x fa-ellipsis-h text-secondary"></i></a><button class="btn btn-sm clipboardjs" data-clipboard-text="<?php echo $login_password; ?>"><i class="far fa-copy text-secondary"></i></button>
|
||||
</td>
|
||||
<td><?php echo $otp_display; ?></td>
|
||||
<td><?php echo $login_uri_display; ?></td>
|
||||
<td>
|
||||
<div class="dropdown dropleft text-center">
|
||||
<button class="btn btn-secondary btn-sm" type="button" data-toggle="dropdown">
|
||||
<i class="fas fa-ellipsis-h"></i>
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#editLoginModal<?php echo $login_id; ?>">
|
||||
<i class="fas fa-fw fa-edit mr-2"></i>Edit
|
||||
</a>
|
||||
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#shareModal" onclick="populateShareModal(<?php echo "$client_id, 'Login', $login_id"; ?>)">
|
||||
<i class="fas fa-fw fa-share mr-2"></i>Share
|
||||
</a>
|
||||
<?php if ($session_user_role == 3) { ?>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item text-danger text-bold" href="post.php?delete_login=<?php echo $login_id; ?>">
|
||||
<i class="fas fa-fw fa-trash mr-2"></i>Delete
|
||||
<tr class="<?php if (!empty($login_important)) {
|
||||
echo "text-bold";
|
||||
} ?>">
|
||||
<td>
|
||||
<i class="fa fa-fw fa-key text-secondary"></i>
|
||||
<a class="text-dark" href="#" data-toggle="modal" data-target="#editLoginModal<?php echo $login_id; ?>">
|
||||
<?php echo $login_name; ?>
|
||||
</a>
|
||||
</td>
|
||||
<td><?php echo $login_description_display; ?></td>
|
||||
<td><?php echo $login_username_display; ?></td>
|
||||
<td>
|
||||
<a tabindex="0" href="#" data-toggle="popover" data-trigger="focus" data-placement="top" data-content="<?php echo $login_password; ?>"><i class="fas fa-2x fa-ellipsis-h text-secondary"></i><i class="fas fa-2x fa-ellipsis-h text-secondary"></i></a><button class="btn btn-sm clipboardjs" data-clipboard-text="<?php echo $login_password; ?>"><i class="far fa-copy text-secondary"></i></button>
|
||||
</td>
|
||||
<td><?php echo $otp_display; ?></td>
|
||||
<td><?php echo $login_uri_display; ?></td>
|
||||
<td>
|
||||
<div class="dropdown dropleft text-center">
|
||||
<button class="btn btn-secondary btn-sm" type="button" data-toggle="dropdown">
|
||||
<i class="fas fa-ellipsis-h"></i>
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#editLoginModal<?php echo $login_id; ?>">
|
||||
<i class="fas fa-fw fa-edit mr-2"></i>Edit
|
||||
</a>
|
||||
<?php } ?>
|
||||
<a class="dropdown-item" href="#" data-toggle="modal" data-target="#shareModal" onclick="populateShareModal(<?php echo "$client_id, 'Login', $login_id"; ?>)">
|
||||
<i class="fas fa-fw fa-share mr-2"></i>Share
|
||||
</a>
|
||||
<?php if ($session_user_role == 3) { ?>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item text-danger text-bold" href="post.php?delete_login=<?php echo $login_id; ?>">
|
||||
<i class="fas fa-fw fa-trash mr-2"></i>Delete
|
||||
</a>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
|
||||
require "client_login_edit_modal.php";
|
||||
require "client_login_edit_modal.php";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
?>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<?php require_once "pagination.php";
|
||||
?>
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -176,8 +181,10 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
|||
function showOTP(id, secret) {
|
||||
//Send a GET request to ajax.php as ajax.php?get_totp_token=true&totp_secret=SECRET
|
||||
jQuery.get(
|
||||
"ajax.php",
|
||||
{get_totp_token: 'true', totp_secret: secret},
|
||||
"ajax.php", {
|
||||
get_totp_token: 'true',
|
||||
totp_secret: secret
|
||||
},
|
||||
function(data) {
|
||||
//If we get a response from post.php, parse it as JSON
|
||||
const token = JSON.parse(data);
|
||||
|
|
@ -191,8 +198,10 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
|||
function showOTPViaLoginID(login_id) {
|
||||
// Send a GET request to ajax.php as ajax.php?get_totp_token_via_id=true&login_id=ID
|
||||
jQuery.get(
|
||||
"ajax.php",
|
||||
{get_totp_token_via_id: 'true', login_id: login_id},
|
||||
"ajax.php", {
|
||||
get_totp_token_via_id: 'true',
|
||||
login_id: login_id
|
||||
},
|
||||
function(data) {
|
||||
//If we get a response from post.php, parse it as JSON
|
||||
const token = JSON.parse(data);
|
||||
|
|
@ -204,7 +213,24 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()"));
|
|||
}
|
||||
|
||||
function generatePassword() {
|
||||
document.getElementById("password").value = "<?php echo randomString(); ?>"
|
||||
document.getElementById("password").value = "<?php echo generateReadablePassword(3); ?>"
|
||||
}
|
||||
|
||||
function generatePassword() {
|
||||
var url = '/ajax.php?get_readable_pass=true';
|
||||
|
||||
// Make an AJAX request to the server
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', url, true);
|
||||
|
||||
xhr.onreadystatechange = function() {
|
||||
if (xhr.readyState == 4 && xhr.status == 200) {
|
||||
var password = xhr.responseText;
|
||||
|
||||
document.getElementById("password").value = password;
|
||||
}
|
||||
};
|
||||
xhr.send();
|
||||
}
|
||||
</script>
|
||||
|
||||
|
|
@ -219,4 +245,3 @@ require_once "client_login_import_modal.php";
|
|||
require_once "client_login_export_modal.php";
|
||||
|
||||
require_once "footer.php";
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?php
|
||||
|
||||
|
||||
require_once "inc_all.php";
|
||||
require_once "inc_all_client.php";
|
||||
|
||||
|
||||
if (isset($_GET['client_id'])) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
|
||||
|
||||
// Default Column Sortby Filter
|
||||
$sort = "ticket_number";
|
||||
$order = "DESC";
|
||||
|
|
@ -99,6 +100,7 @@ $total_tickets_closed = intval($row['total_tickets_closed']);
|
|||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sort; ?>&sort=ticket_number&order=<?php echo $disp; ?>">Number</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sort; ?>&sort=ticket_subject&order=<?php echo $disp; ?>">Subject</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sort; ?>&sort=contact_name&order=<?php echo $disp; ?>">Contact</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sort; ?>&sort=ticket_billable&order=<?php echo $disp; ?>">Billable</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sort; ?>&sort=ticket_priority&order=<?php echo $disp; ?>">Priority</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sort; ?>&sort=ticket_status&order=<?php echo $disp; ?>">Status</a></th>
|
||||
<th><a class="text-dark" href="?<?php echo $url_query_strings_sort; ?>&sort=user_name&order=<?php echo $disp; ?>">Assigned</a></th>
|
||||
|
|
@ -117,6 +119,7 @@ $total_tickets_closed = intval($row['total_tickets_closed']);
|
|||
$ticket_subject = nullable_htmlentities($row['ticket_subject']);
|
||||
$ticket_priority = nullable_htmlentities($row['ticket_priority']);
|
||||
$ticket_status = nullable_htmlentities($row['ticket_status']);
|
||||
$ticket_billable = intval($row['ticket_billable']);
|
||||
$ticket_vendor_ticket_number = nullable_htmlentities($row['ticket_vendor_ticket_number']);
|
||||
$ticket_created_at = nullable_htmlentities($row['ticket_created_at']);
|
||||
$ticket_created_at_time_ago = timeAgo($row['ticket_created_at']);
|
||||
|
|
@ -195,6 +198,15 @@ $total_tickets_closed = intval($row['total_tickets_closed']);
|
|||
<a href="ticket.php?ticket_id=<?php echo $ticket_id; ?>"><?php echo $ticket_subject; ?></a>
|
||||
</td>
|
||||
<td><a href="#" data-toggle="modal" data-target="#editTicketContactModal<?php echo $ticket_id; ?>"><?php echo $contact_display; ?></a></td>
|
||||
<td class="text-center">
|
||||
<a href="#" data-toggle="modal" data-target="#editTicketBillableModal<?php echo $ticket_id; ?>">
|
||||
<?php
|
||||
if ($ticket_billable == 1) {
|
||||
echo "<span class='badge badge-pill badge-success'>$</span>";
|
||||
} else {
|
||||
echo "<span class='badge badge-pill badge-secondary'>X</span>";
|
||||
}
|
||||
?></td>
|
||||
<td><a href="#" data-toggle="modal" data-target="#editTicketPriorityModal<?php echo $ticket_id; ?>"><?php echo $ticket_priority_display; ?></a></td>
|
||||
<td><span class='p-2 badge badge-pill badge-<?php echo $ticket_status_color; ?>'><?php echo $ticket_status; ?></span></td>
|
||||
<td><a href="#" data-toggle="modal" data-target="#assignTicketModal<?php echo $ticket_id; ?>"><?php echo $ticket_assigned_to_display; ?></a></td>
|
||||
|
|
@ -217,6 +229,8 @@ $total_tickets_closed = intval($row['total_tickets_closed']);
|
|||
|
||||
require "ticket_edit_contact_modal.php";
|
||||
|
||||
require "ticket_edit_billable_modal.php";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
/* Custom CSS Styling for time tracking */
|
||||
|
||||
/* Small bit of space between the ticket status and time tracking inputs */
|
||||
.custom-tt-horizontal-spacing {
|
||||
width: 20px; /* Adjust the width as needed for smaller spacing */
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* Adjust Hour, min, and second fields to be close together */
|
||||
.custom-tt-width {
|
||||
width: 50px; /* Adjust the width as needed */
|
||||
padding: 0; /* Remove padding to maintain the desired width */
|
||||
}
|
||||
1273
dashboard.php
1273
dashboard.php
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -1,11 +0,0 @@
|
|||
<div class="row mb-3">
|
||||
<div class="col-md-12">
|
||||
<div class="btn-group btn-group-lg btn-block">
|
||||
<a style="pointer-events: none" href="dashboard.php" class="btn btn-<?php if (basename($_SERVER["PHP_SELF"]) == "dashboard.php") { echo "dark"; } else { echo "secondary"; } ?>">Personal <small>(coming soon)</small></a>
|
||||
<?php if($config_module_enable_accounting == 1) { ?>
|
||||
<a href="dashboard_financial.php" class="btn btn-<?php if (basename($_SERVER["PHP_SELF"]) == "dashboard_financial.php") { echo "dark"; } else { echo "secondary"; } ?>">Administrative</a>
|
||||
<?php } ?>
|
||||
<a href="dashboard_technical.php" class="btn btn-<?php if (basename($_SERVER["PHP_SELF"]) == "dashboard_technical.php") { echo "dark"; } else { echo "secondary"; } ?>">Technical</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -1,187 +0,0 @@
|
|||
<?php
|
||||
|
||||
require_once "inc_all.php";
|
||||
|
||||
require_once "dashboard_nav.php";
|
||||
|
||||
if (isset($_GET['year'])) {
|
||||
$year = intval($_GET['year']);
|
||||
} else {
|
||||
$year = date('Y');
|
||||
}
|
||||
|
||||
// GET unique years from expenses, payments and revenues
|
||||
$sql_payment_years = mysqli_query(
|
||||
$mysqli,
|
||||
"SELECT YEAR(expense_date) AS all_years FROM expenses
|
||||
UNION DISTINCT SELECT YEAR(payment_date) FROM payments
|
||||
UNION DISTINCT SELECT YEAR(revenue_date) FROM revenues
|
||||
ORDER BY all_years DESC"
|
||||
);
|
||||
|
||||
// Get Total Clients added
|
||||
$sql_clients = mysqli_fetch_assoc(mysqli_query(
|
||||
$mysqli,
|
||||
"SELECT COUNT('client_id') AS clients_added FROM clients
|
||||
WHERE YEAR(client_created_at) = $year"
|
||||
));
|
||||
$clients_added = $sql_clients['clients_added'];
|
||||
|
||||
// Get Total contacts added
|
||||
$sql_contacts = mysqli_fetch_assoc(mysqli_query(
|
||||
$mysqli,
|
||||
"SELECT COUNT('contact_id') AS contacts_added FROM contacts
|
||||
WHERE YEAR(contact_created_at) = $year"
|
||||
));
|
||||
$contacts_added = $sql_contacts['contacts_added'];
|
||||
|
||||
// Get Total assets added
|
||||
$sql_assets = mysqli_fetch_assoc(mysqli_query(
|
||||
$mysqli,
|
||||
"SELECT COUNT('asset_id') AS assets_added FROM assets
|
||||
WHERE YEAR(asset_created_at) = $year"
|
||||
));
|
||||
$assets_added = $sql_assets['assets_added'];
|
||||
|
||||
// Ticket count
|
||||
$sql_tickets = mysqli_fetch_assoc(mysqli_query(
|
||||
$mysqli,
|
||||
"SELECT COUNT('ticket_id') AS active_tickets
|
||||
FROM tickets
|
||||
WHERE ticket_status != 'Closed'"
|
||||
));
|
||||
$active_tickets = $sql_tickets['active_tickets'];
|
||||
|
||||
// Expiring domains (but not ones that have already expired)
|
||||
$sql_domains_expiring = mysqli_fetch_assoc(mysqli_query(
|
||||
$mysqli,
|
||||
"SELECT COUNT('domain_id') as expiring_domains
|
||||
FROM domains
|
||||
WHERE domain_expire IS NOT NULL
|
||||
AND domain_expire > CURRENT_DATE
|
||||
AND domain_expire < CURRENT_DATE + INTERVAL 30 DAY
|
||||
AND domain_archived_at IS NULL"
|
||||
));
|
||||
$expiring_domains = $sql_domains_expiring['expiring_domains'];
|
||||
|
||||
// Expiring Certificates (but not ones that have already expired)
|
||||
$sql_certs_expiring = mysqli_fetch_assoc(mysqli_query(
|
||||
$mysqli,
|
||||
"SELECT COUNT('certificate_id') as expiring_certs
|
||||
FROM certificates
|
||||
WHERE certificate_expire IS NOT NULL
|
||||
AND certificate_expire > CURRENT_DATE
|
||||
AND certificate_expire < CURRENT_DATE + INTERVAL 30 DAY
|
||||
AND certificate_archived_at IS NULL"
|
||||
));
|
||||
$expiring_certificates = $sql_certs_expiring['expiring_certs'];
|
||||
|
||||
?>
|
||||
|
||||
<form class="mb-3">
|
||||
<select onchange="this.form.submit()" class="form-control" name="year">
|
||||
<?php
|
||||
|
||||
while ($row = mysqli_fetch_array($sql_payment_years)) {
|
||||
$payment_year = $row['all_years'];
|
||||
if (empty($payment_year)) {
|
||||
$payment_year = date('Y');
|
||||
}
|
||||
?>
|
||||
<option <?php if ($year == $payment_year) { echo "selected"; } ?> > <?php echo $payment_year; ?></option>
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
</select>
|
||||
</form>
|
||||
|
||||
<!-- Icon Cards-->
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-4 col-6">
|
||||
<!-- small box -->
|
||||
<a class="small-box bg-secondary" href="clients.php?date_from=<?php echo $year; ?>-01-01&date_to=<?php echo $year; ?>-12-31">
|
||||
<div class="inner">
|
||||
<h3><?php echo $clients_added; ?></h3>
|
||||
<p>New Clients</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-users"></i>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<!-- ./col -->
|
||||
|
||||
<div class="col-lg-4 col-6">
|
||||
<a class="small-box bg-success">
|
||||
<div class="inner">
|
||||
<h3><?php echo $contacts_added; ?></h3>
|
||||
<p>New Contacts</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-user"></i>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<!-- ./col -->
|
||||
|
||||
<div class="col-lg-4 col-6">
|
||||
<a class="small-box bg-info" href="/report_all_assets_by_client.php">
|
||||
<div class="inner">
|
||||
<h3><?php echo $assets_added; ?></h3>
|
||||
<p>New Assets</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-desktop"></i>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<!-- ./col -->
|
||||
|
||||
<div class="col-lg-4 col-6">
|
||||
<a class="small-box bg-danger" href="tickets.php">
|
||||
<div class="inner">
|
||||
<h3><?php echo $active_tickets; ?></h3>
|
||||
<p>Active Tickets</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-ticket-alt"></i>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<!-- ./col -->
|
||||
|
||||
<div class="col-lg-4 col-6">
|
||||
<a class="small-box bg-warning">
|
||||
<div class="inner">
|
||||
<h3><?php echo $expiring_domains; ?></h3>
|
||||
<p>Expiring Domains</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-globe"></i>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<!-- ./col -->
|
||||
|
||||
<div class="col-lg-4 col-6">
|
||||
<a class="small-box bg-primary">
|
||||
<div class="inner">
|
||||
<h3><?php echo $expiring_certificates; ?></h3>
|
||||
<p>Expiring Certificates</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="fa fa-lock"></i>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<!-- ./col -->
|
||||
|
||||
</div> <!-- rows -->
|
||||
|
||||
<?php
|
||||
require_once "footer.php";
|
||||
|
||||
|
||||
|
|
@ -1515,14 +1515,23 @@ if (LATEST_DATABASE_VERSION > CURRENT_DATABASE_VERSION) {
|
|||
mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.9.7'");
|
||||
}
|
||||
|
||||
if (CURRENT_DATABASE_VERSION == '0.9.7') {
|
||||
// Insert queries here required to update to DB version 0.9.8
|
||||
mysqli_query($mysqli, "ALTER TABLE `user_settings` ADD `user_config_dashboard_financial_enable` TINYINT(1) NOT NULL DEFAULT 0 AFTER `user_config_records_per_page`");
|
||||
mysqli_query($mysqli, "ALTER TABLE `user_settings` ADD `user_config_dashboard_technical_enable` TINYINT(1) NOT NULL DEFAULT 0 AFTER `user_config_dashboard_financial_enable`");
|
||||
//set all invoice id
|
||||
// Then, update the database to the next sequential version
|
||||
mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.9.8'");
|
||||
}
|
||||
|
||||
// Be sure to change database_version.php to reflect the version you are updating to here
|
||||
// Please add this same comment block to the bottom of this file, and update the version number.
|
||||
// Uncomment Below Lines, to add additional database updates
|
||||
//
|
||||
// if (CURRENT_DATABASE_VERSION == '0.9.7') {
|
||||
// // Insert queries here required to update to DB version 0.9.8
|
||||
// if (CURRENT_DATABASE_VERSION == '0.9.8') {
|
||||
// // Insert queries here required to update to DB version 0.9.9
|
||||
// // Then, update the database to the next sequential version
|
||||
// mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.9.8'");
|
||||
// mysqli_query($mysqli, "UPDATE `settings` SET `config_current_database_version` = '0.9.9'");
|
||||
// }
|
||||
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -5,5 +5,5 @@
|
|||
* It is used in conjunction with database_updates.php
|
||||
*/
|
||||
|
||||
DEFINE("LATEST_DATABASE_VERSION", "0.9.7");
|
||||
DEFINE("LATEST_DATABASE_VERSION", "0.9.8");
|
||||
|
||||
|
|
|
|||
4
db.sql
4
db.sql
|
|
@ -1637,6 +1637,8 @@ CREATE TABLE `user_settings` (
|
|||
`user_config_remember_me_token` varchar(255) DEFAULT NULL,
|
||||
`user_config_force_mfa` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`user_config_records_per_page` int(11) NOT NULL DEFAULT 10,
|
||||
`user_config_dashboard_financial_enable` tinyint(1) NOT NULL DEFAULT 0,
|
||||
`user_config_dashboard_technical_enable` tinyint(1) NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`user_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
/*!40101 SET character_set_client = @saved_cs_client */;
|
||||
|
|
@ -1749,4 +1751,4 @@ CREATE TABLE `vendors` (
|
|||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
|
||||
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
|
||||
|
||||
-- Dump completed on 2023-12-01 11:52:50
|
||||
-- Dump completed on 2023-12-21 16:35:50
|
||||
|
|
|
|||
|
|
@ -15,8 +15,7 @@ use PHPMailer\PHPMailer\PHPMailer;
|
|||
use PHPMailer\PHPMailer\Exception;
|
||||
|
||||
// Function to generate both crypto & URL safe random strings
|
||||
function randomString($length = 16)
|
||||
{
|
||||
function randomString($length = 16) {
|
||||
// Generate some cryptographically safe random bytes
|
||||
// Generate a little more than requested as we'll lose some later converting
|
||||
$random_bytes = random_bytes($length + 5);
|
||||
|
|
@ -33,8 +32,7 @@ function randomString($length = 16)
|
|||
}
|
||||
|
||||
// Older keygen function - only used for TOTP currently
|
||||
function key32gen()
|
||||
{
|
||||
function key32gen() {
|
||||
$chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
$chars .= "234567";
|
||||
while (1) {
|
||||
|
|
@ -256,8 +254,7 @@ function setupFirstUserSpecificKey($user_password, $site_encryption_master_key)
|
|||
* New Users: Requires the admin setting up their account have a Specific/Session key configured
|
||||
* Password Changes: Will use the current info in the session.
|
||||
*/
|
||||
function encryptUserSpecificKey($user_password)
|
||||
{
|
||||
function encryptUserSpecificKey($user_password) {
|
||||
$iv = randomString();
|
||||
$salt = randomString();
|
||||
|
||||
|
|
@ -874,6 +871,57 @@ function calculateAccountBalance($mysqli, $account_id) {
|
|||
}
|
||||
|
||||
|
||||
function generateReadablePassword($security_level) {
|
||||
// Arrays of words
|
||||
$adjectives = ['Smart', 'Swift', 'Secure', 'Stable', 'Digital', 'Virtual', 'Active', 'Dynamic', 'Innovative', 'Efficient', 'Portable', 'Wireless', 'Rapid', 'Intuitive', 'Automated', 'Robust', 'Reliable', 'Sleek', 'Modern', 'Happy', 'Funny', 'Quick', 'Bright', 'Clever', 'Gentle', 'Brave', 'Calm', 'Eager', 'Fierce', 'Kind', 'Lucky', 'Proud', 'Silly', 'Witty', 'Bold', 'Curious', 'Elated', 'Gracious', 'Honest', 'Jolly', 'Merry', 'Noble', 'Optimistic', 'Playful', 'Quirky', 'Rustic', 'Steady', 'Tranquil', 'Upbeat'];
|
||||
$nouns = ['Computer', 'Laptop', 'Tablet', 'Server', 'Router', 'Software', 'Hardware', 'Pixel', 'Byte', 'App', 'Network', 'Cloud', 'Firewall', 'Email', 'Database', 'Folder', 'Document', 'Interface', 'Program', 'Gadget', 'Dinosaur', 'Tiger', 'Elephant', 'Kangaroo', 'Monkey', 'Unicorn', 'Dragon', 'Puppy', 'Kitten', 'Parrot', 'Lion', 'Bear', 'Fox', 'Wolf', 'Rabbit', 'Deer', 'Owl', 'Hedgehog', 'Turtle', 'Frog', 'Butterfly', 'Panda', 'Giraffe', 'Zebra', 'Peacock', 'Koala', 'Raccoon', 'Squirrel', 'Hippo', 'Rhino', 'Book', "Monitor"];
|
||||
$verbs = ['Connects', 'Runs', 'Processes', 'Secures', 'Encrypts', 'Saves', 'Updates', 'Boots', 'Scans', 'Compiles', 'Executes', 'Restores', 'Installs', 'Configures', 'Downloads', 'Streams', 'BacksUp', 'Syncs', 'Browses', 'Navigates', 'Runs', 'Jumps', 'Flies', 'Swims', 'Dances', 'Sings', 'Hops', 'Skips', 'Races', 'Climbs', 'Crawls', 'Glides', 'Twirls', 'Swings', 'Sprints', 'Gallops', 'Trots', 'Wanders', 'Strolls', 'Marches'];
|
||||
$adverbs = ['Quickly', 'Slowly', 'Gracefully', 'Wildly', 'Loudly', 'Silently', 'Cheerfully', 'Eagerly', 'Gently', 'Happily', 'Jovially', 'Kindly', 'Lazily', 'Merrily', 'Neatly', 'Politely', 'Quietly', 'Rapidly', 'Smoothly', 'Tightly', 'Swiftly', 'Securely', 'Efficiently', 'Rapidly', 'Smoothly', 'Reliably', 'Safely', 'Wirelessly', 'Instantly', 'Silently', 'Automatically', 'Seamlessly', 'Digitally', 'Virtually', 'Continuously', 'Regularly', 'Intelligently', 'Logically'];
|
||||
|
||||
// Randomly select words from arrays
|
||||
$adj = $adjectives[array_rand($adjectives)];
|
||||
$noun = $nouns[array_rand($nouns)];
|
||||
$verb = $verbs[array_rand($verbs)];
|
||||
$adv = $adverbs[array_rand($adverbs)];
|
||||
|
||||
|
||||
|
||||
// Combine to create a base password
|
||||
if ($security_level > 2 ) {
|
||||
$password = "The" . $adj . $noun . $adv . $verb;
|
||||
} else {
|
||||
$password = $adj . $noun . $verb;
|
||||
}
|
||||
|
||||
// Mapping of letters to special characters and numbers
|
||||
$mappings = [
|
||||
'A' => '@', 'a' => '@',
|
||||
'E' => '3', 'e' => '3',
|
||||
'I' => '!', 'i' => '!',
|
||||
'O' => '0', 'o' => '0',
|
||||
'S' => '$', 's' => '$'
|
||||
];
|
||||
|
||||
// Replace characters based on mappings
|
||||
if ($security_level > 4) {
|
||||
$password = strtr($password, $mappings);
|
||||
} else {
|
||||
// Randomly replace characters based on mappings
|
||||
for ($i = 0; $i < strlen($password); $i++) {
|
||||
if (array_key_exists($password[$i], $mappings) && rand(0, 1)) {
|
||||
$password[$i] = $mappings[$password[$i]];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($security_level > 3) {
|
||||
// Add a random number at the end
|
||||
$password .= rand(0, 99);
|
||||
}
|
||||
|
||||
return $password;
|
||||
}
|
||||
|
||||
function addToMailQueue($mysqli, $data) {
|
||||
|
||||
foreach ($data as $email) {
|
||||
|
|
@ -892,12 +940,17 @@ function addToMailQueue($mysqli, $data) {
|
|||
}
|
||||
|
||||
function calculateInvoiceBalance($mysqli, $invoice_id) {
|
||||
$sql_invoice = mysqli_query($mysqli, "SELECT * FROM invoices WHERE invoice_id = $invoice_id");
|
||||
$invoice_id_int = intval($invoice_id);
|
||||
$sql_invoice = mysqli_query($mysqli, "SELECT * FROM invoices WHERE invoice_id = $invoice_id_int");
|
||||
$row = mysqli_fetch_array($sql_invoice);
|
||||
$invoice_amount = floatval($row['invoice_amount']);
|
||||
$invoice_id = intval($row['invoice_id']);
|
||||
|
||||
$sql_payments = mysqli_query($mysqli, "SELECT SUM(payment_amount) AS total_payments FROM payments WHERE payment_invoice_id = $invoice_id");
|
||||
$sql_payments = mysqli_query(
|
||||
$mysqli,
|
||||
"SELECT SUM(payment_amount) AS total_payments FROM payments
|
||||
WHERE payment_invoice_id = $invoice_id
|
||||
");
|
||||
|
||||
$row = mysqli_fetch_array($sql_payments);
|
||||
$total_payments = floatval($row['total_payments']);
|
||||
|
||||
|
|
@ -909,4 +962,5 @@ function calculateInvoiceBalance($mysqli, $invoice_id) {
|
|||
|
||||
return $balance;
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -243,9 +243,7 @@ $industry_select_array = array(
|
|||
);
|
||||
|
||||
$start_page_select_array = array (
|
||||
'dashboard.php'=>'Personal Dashboard',
|
||||
'dashboard_financial.php'=>'Administrative Dashboard',
|
||||
'dashboard_technical.php' => 'Technical Dashboard',
|
||||
'dashboard.php'=>'Dashboard',
|
||||
'clients.php'=> 'Client Management',
|
||||
'tickets.php'=> 'Support Tickets',
|
||||
'invoices.php' => 'Invoices'
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_size = 4
|
||||
indent_style = space
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.{yml,yaml}]
|
||||
indent_size = 2
|
||||
|
|
@ -47,7 +47,7 @@ This software is distributed under the [LGPL 2.1](http://www.gnu.org/licenses/lg
|
|||
PHPMailer is available on [Packagist](https://packagist.org/packages/phpmailer/phpmailer) (using semantic versioning), and installation via [Composer](https://getcomposer.org) is the recommended way to install PHPMailer. Just add this line to your `composer.json` file:
|
||||
|
||||
```json
|
||||
"phpmailer/phpmailer": "^6.8.1"
|
||||
"phpmailer/phpmailer": "^6.9.1"
|
||||
```
|
||||
|
||||
or run
|
||||
|
|
@ -58,7 +58,8 @@ composer require phpmailer/phpmailer
|
|||
|
||||
Note that the `vendor` folder and the `vendor/autoload.php` script are generated by Composer; they are not part of PHPMailer.
|
||||
|
||||
If you want to use the Gmail XOAUTH2 authentication class, you will also need to add a dependency on the `league/oauth2-client` package in your `composer.json`.
|
||||
If you want to use XOAUTH2 authentication, you will also need to add a dependency on the `league/oauth2-client` and appropriate service adapters package in your `composer.json`, or take a look at
|
||||
by @decomplexity's [SendOauth2 wrapper](https://github.com/decomplexity/SendOauth2), especially if you're using Microsoft services.
|
||||
|
||||
Alternatively, if you're not using Composer, you
|
||||
can [download PHPMailer as a zip file](https://github.com/PHPMailer/PHPMailer/archive/master.zip), (note that docs and examples are not included in the zip file), then copy the contents of the PHPMailer folder into one of the `include_path` directories specified in your PHP configuration and load each class file manually:
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
6.8.1
|
||||
6.9.1
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@
|
|||
"yoast/phpunit-polyfills": "^1.0.4"
|
||||
},
|
||||
"suggest": {
|
||||
"decomplexity/SendOauth2": "Adapter for using XOAUTH2 authentication",
|
||||
"ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
|
||||
"ext-openssl": "Needed for secure SMTP sending and DKIM signing",
|
||||
"greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication",
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Assamese PHPMailer language file: refer to English translation for definitive list
|
||||
* @package PHPMailer
|
||||
* @author Manish Sarkar <manish.n.manish@gmail.com>
|
||||
*/
|
||||
|
||||
$PHPMAILER_LANG['authenticate'] = 'SMTP ত্ৰুটি: প্ৰমাণীকৰণ কৰিব নোৱাৰি';
|
||||
$PHPMAILER_LANG['buggy_php'] = 'আপোনাৰ PHP সংস্কৰণ এটা বাগৰ দ্বাৰা প্ৰভাৱিত হয় যাৰ ফলত নষ্ট বাৰ্তা হব পাৰে । ইয়াক সমাধান কৰিবলে, প্ৰেৰণ কৰিবলে SMTP ব্যৱহাৰ কৰক, আপোনাৰ php.ini ত mail.add_x_header বিকল্প নিষ্ক্ৰিয় কৰক, MacOS বা Linux লৈ সলনি কৰক, বা আপোনাৰ PHP সংস্কৰণ 7.0.17+ বা 7.1.3+ লৈ সলনি কৰক ।';
|
||||
$PHPMAILER_LANG['connect_host'] = 'SMTP ত্ৰুটি: SMTP চাৰ্ভাৰৰ সৈতে সংযোগ কৰিবলে অক্ষম';
|
||||
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP ত্ৰুটি: তথ্য গ্ৰহণ কৰা হোৱা নাই';
|
||||
$PHPMAILER_LANG['empty_message'] = 'বাৰ্তাৰ মূখ্য অংশ খালী।';
|
||||
$PHPMAILER_LANG['encoding'] = 'অজ্ঞাত এনকোডিং: ';
|
||||
$PHPMAILER_LANG['execute'] = 'এক্সিকিউট কৰিব নোৱাৰি: ';
|
||||
$PHPMAILER_LANG['extension_missing'] = 'সম্প্ৰসাৰণ নোহোৱা হৈছে: ';
|
||||
$PHPMAILER_LANG['file_access'] = 'ফাইল অভিগম কৰিবলে অক্ষম: ';
|
||||
$PHPMAILER_LANG['file_open'] = 'ফাইল ত্ৰুটি: ফাইল খোলিবলৈ অক্ষম: ';
|
||||
$PHPMAILER_LANG['from_failed'] = 'নিম্নলিখিত প্ৰেৰকৰ ঠিকনা(সমূহ) ব্যৰ্থ: ';
|
||||
$PHPMAILER_LANG['instantiate'] = 'মেইল ফাংচনৰ এটা উদাহৰণ সৃষ্টি কৰিবলে অক্ষম';
|
||||
$PHPMAILER_LANG['invalid_address'] = 'প্ৰেৰণ কৰিব নোৱাৰি: অবৈধ ইমেইল ঠিকনা: ';
|
||||
$PHPMAILER_LANG['invalid_header'] = 'অবৈধ হেডাৰৰ নাম বা মান';
|
||||
$PHPMAILER_LANG['invalid_hostentry'] = 'অবৈধ হোষ্টেন্ট্ৰি: ';
|
||||
$PHPMAILER_LANG['invalid_host'] = 'অবৈধ হস্ট:';
|
||||
$PHPMAILER_LANG['mailer_not_supported'] = 'মেইলাৰ সমৰ্থিত নহয়।';
|
||||
$PHPMAILER_LANG['provide_address'] = 'আপুনি অন্ততঃ এটা গন্তব্য ইমেইল ঠিকনা দিব লাগিব';
|
||||
$PHPMAILER_LANG['recipients_failed'] = 'SMTP ত্ৰুটি: নিম্নলিখিত গন্তব্যস্থানসমূহ ব্যৰ্থ: ';
|
||||
$PHPMAILER_LANG['signing'] = 'স্বাক্ষৰ কৰাত ব্যৰ্থ: ';
|
||||
$PHPMAILER_LANG['smtp_code'] = 'SMTP কড: ';
|
||||
$PHPMAILER_LANG['smtp_code_ex'] = 'অতিৰিক্ত SMTP তথ্য: ';
|
||||
$PHPMAILER_LANG['smtp_detail'] = 'বিৱৰণ:';
|
||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP সংযোগ() ব্যৰ্থ';
|
||||
$PHPMAILER_LANG['smtp_error'] = 'SMTP চাৰ্ভাৰৰ ত্ৰুটি: ';
|
||||
$PHPMAILER_LANG['variable_set'] = 'চলক নিৰ্ধাৰণ কৰিব পৰা নগল: ';
|
||||
$PHPMAILER_LANG['extension_missing'] = 'অনুপস্থিত সম্প্ৰসাৰণ: ';
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* Bengali PHPMailer language file: refer to English translation for definitive list
|
||||
* @package PHPMailer
|
||||
* @author Manish Sarkar <manish.n.manish@gmail.com>
|
||||
*/
|
||||
|
||||
$PHPMAILER_LANG['authenticate'] = 'SMTP ত্রুটি: প্রমাণীকরণ করতে অক্ষম৷';
|
||||
$PHPMAILER_LANG['buggy_php'] = 'আপনার PHP সংস্করণ একটি বাগ দ্বারা প্রভাবিত হয় যার ফলে দূষিত বার্তা হতে পারে। এটি ঠিক করতে, পাঠাতে SMTP ব্যবহার করুন, আপনার php.ini এ mail.add_x_header বিকল্পটি নিষ্ক্রিয় করুন, MacOS বা Linux-এ স্যুইচ করুন, অথবা আপনার PHP সংস্করণকে 7.0.17+ বা 7.1.3+ এ পরিবর্তন করুন।';
|
||||
$PHPMAILER_LANG['connect_host'] = 'SMTP ত্রুটি: SMTP সার্ভারের সাথে সংযোগ করতে অক্ষম৷';
|
||||
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP ত্রুটি: ডেটা গ্রহণ করা হয়নি৷';
|
||||
$PHPMAILER_LANG['empty_message'] = 'বার্তার অংশটি খালি।';
|
||||
$PHPMAILER_LANG['encoding'] = 'অজানা এনকোডিং: ';
|
||||
$PHPMAILER_LANG['execute'] = 'নির্বাহ করতে অক্ষম: ';
|
||||
$PHPMAILER_LANG['extension_missing'] = 'এক্সটেনশন অনুপস্থিত:';
|
||||
$PHPMAILER_LANG['file_access'] = 'ফাইল অ্যাক্সেস করতে অক্ষম: ';
|
||||
$PHPMAILER_LANG['file_open'] = 'ফাইল ত্রুটি: ফাইল খুলতে অক্ষম: ';
|
||||
$PHPMAILER_LANG['from_failed'] = 'নিম্নলিখিত প্রেরকের ঠিকানা(গুলি) ব্যর্থ হয়েছে: ';
|
||||
$PHPMAILER_LANG['instantiate'] = 'মেল ফাংশনের একটি উদাহরণ তৈরি করতে অক্ষম৷';
|
||||
$PHPMAILER_LANG['invalid_address'] = 'পাঠাতে অক্ষম: অবৈধ ইমেল ঠিকানা: ';
|
||||
$PHPMAILER_LANG['invalid_header'] = 'অবৈধ হেডার নাম বা মান';
|
||||
$PHPMAILER_LANG['invalid_hostentry'] = 'অবৈধ হোস্টেন্ট্রি: ';
|
||||
$PHPMAILER_LANG['invalid_host'] = 'অবৈধ হোস্ট:';
|
||||
$PHPMAILER_LANG['mailer_not_supported'] = 'মেইলার সমর্থিত নয়।';
|
||||
$PHPMAILER_LANG['provide_address'] = 'আপনাকে অবশ্যই অন্তত একটি গন্তব্য ইমেল ঠিকানা প্রদান করতে হবে৷';
|
||||
$PHPMAILER_LANG['recipients_failed'] = 'SMTP ত্রুটি: নিম্নলিখিত গন্তব্যগুলি ব্যর্থ হয়েছে: ';
|
||||
$PHPMAILER_LANG['signing'] = 'স্বাক্ষর করতে ব্যর্থ হয়েছে: ';
|
||||
$PHPMAILER_LANG['smtp_code'] = 'SMTP কোড: ';
|
||||
$PHPMAILER_LANG['smtp_code_ex'] = 'অতিরিক্ত SMTP তথ্য:';
|
||||
$PHPMAILER_LANG['smtp_detail'] = 'বর্ণনা: ';
|
||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP সংযোগ() ব্যর্থ হয়েছে৷';
|
||||
$PHPMAILER_LANG['smtp_error'] = 'SMTP সার্ভার ত্রুটি: ';
|
||||
$PHPMAILER_LANG['variable_set'] = 'পরিবর্তনশীল সেট করা যায়নি: ';
|
||||
$PHPMAILER_LANG['extension_missing'] = 'অনুপস্থিত এক্সটেনশন: ';
|
||||
|
|
@ -9,6 +9,7 @@
|
|||
*/
|
||||
|
||||
$PHPMAILER_LANG['authenticate'] = 'SMTP fejl: Login mislykkedes.';
|
||||
$PHPMAILER_LANG['buggy_php'] = 'Din version af PHP er berørt af en fejl, som gør at dine beskeder muligvis vises forkert. For at rette dette kan du skifte til SMTP, slå mail.add_x_header headeren i din php.ini fil fra, skifte til MacOS eller Linux eller opgradere din version af PHP til 7.0.17+ eller 7.1.3+.';
|
||||
$PHPMAILER_LANG['connect_host'] = 'SMTP fejl: Forbindelse til SMTP serveren kunne ikke oprettes.';
|
||||
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data blev ikke accepteret.';
|
||||
$PHPMAILER_LANG['empty_message'] = 'Meddelelsen er uden indhold';
|
||||
|
|
|
|||
|
|
@ -6,21 +6,28 @@
|
|||
*/
|
||||
|
||||
$PHPMAILER_LANG['authenticate'] = 'Błąd SMTP: Nie można przeprowadzić uwierzytelnienia.';
|
||||
$PHPMAILER_LANG['buggy_php'] = 'Twoja wersja PHP zawiera błąd, który może powodować uszkodzenie wiadomości. Aby go naprawić, przełącz się na wysyłanie za pomocą SMTP, wyłącz opcję mail.add_x_header w php.ini, przełącz się na MacOS lub Linux lub zaktualizuj PHP do wersji 7.0.17+ lub 7.1.3+.';
|
||||
$PHPMAILER_LANG['connect_host'] = 'Błąd SMTP: Nie można połączyć się z wybranym hostem.';
|
||||
$PHPMAILER_LANG['data_not_accepted'] = 'Błąd SMTP: Dane nie zostały przyjęte.';
|
||||
$PHPMAILER_LANG['empty_message'] = 'Wiadomość jest pusta.';
|
||||
$PHPMAILER_LANG['encoding'] = 'Błędny sposób kodowania znaków: ';
|
||||
$PHPMAILER_LANG['execute'] = 'Nie można uruchomić: ';
|
||||
$PHPMAILER_LANG['extension_missing'] = 'Brakujące rozszerzenie: ';
|
||||
$PHPMAILER_LANG['file_access'] = 'Brak dostępu do pliku: ';
|
||||
$PHPMAILER_LANG['file_open'] = 'Nie można otworzyć pliku: ';
|
||||
$PHPMAILER_LANG['from_failed'] = 'Następujący adres nadawcy jest nieprawidłowy lub nie istnieje: ';
|
||||
$PHPMAILER_LANG['instantiate'] = 'Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera.';
|
||||
$PHPMAILER_LANG['invalid_address'] = 'Nie można wysłać wiadomości, ' . 'następujący adres odbiorcy jest nieprawidłowy lub nie istnieje: ';
|
||||
$PHPMAILER_LANG['invalid_header'] = 'Nieprawidłowa nazwa lub wartość nagłówka';
|
||||
$PHPMAILER_LANG['invalid_hostentry'] = 'Nieprawidłowy wpis hosta: ';
|
||||
$PHPMAILER_LANG['invalid_host'] = 'Nieprawidłowy host: ';
|
||||
$PHPMAILER_LANG['provide_address'] = 'Należy podać prawidłowy adres email odbiorcy.';
|
||||
$PHPMAILER_LANG['mailer_not_supported'] = 'Wybrana metoda wysyłki wiadomości nie jest obsługiwana.';
|
||||
$PHPMAILER_LANG['recipients_failed'] = 'Błąd SMTP: Następujący odbiorcy są nieprawidłowi lub nie istnieją: ';
|
||||
$PHPMAILER_LANG['signing'] = 'Błąd podpisywania wiadomości: ';
|
||||
$PHPMAILER_LANG['smtp_code'] = 'Kod SMTP: ';
|
||||
$PHPMAILER_LANG['smtp_code_ex'] = 'Dodatkowe informacje SMTP: ';
|
||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'Wywołanie funkcji SMTP Connect() zostało zakończone niepowodzeniem.';
|
||||
$PHPMAILER_LANG['smtp_detail'] = 'Szczegóły: ';
|
||||
$PHPMAILER_LANG['smtp_error'] = 'Błąd SMTP: ';
|
||||
$PHPMAILER_LANG['variable_set'] = 'Nie można ustawić lub zmodyfikować zmiennej: ';
|
||||
$PHPMAILER_LANG['extension_missing'] = 'Brakujące rozszerzenie: ';
|
||||
|
|
|
|||
|
|
@ -357,6 +357,13 @@ class PHPMailer
|
|||
*/
|
||||
public $AuthType = '';
|
||||
|
||||
/**
|
||||
* SMTP SMTPXClient command attibutes
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $SMTPXClient = [];
|
||||
|
||||
/**
|
||||
* An implementation of the PHPMailer OAuthTokenProvider interface.
|
||||
*
|
||||
|
|
@ -750,7 +757,7 @@ class PHPMailer
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '6.8.1';
|
||||
const VERSION = '6.9.1';
|
||||
|
||||
/**
|
||||
* Error severity: message only, continue processing.
|
||||
|
|
@ -1571,6 +1578,10 @@ class PHPMailer
|
|||
|
||||
//Validate From, Sender, and ConfirmReadingTo addresses
|
||||
foreach (['From', 'Sender', 'ConfirmReadingTo'] as $address_kind) {
|
||||
if ($this->{$address_kind} === null) {
|
||||
$this->{$address_kind} = '';
|
||||
continue;
|
||||
}
|
||||
$this->{$address_kind} = trim($this->{$address_kind});
|
||||
if (empty($this->{$address_kind})) {
|
||||
continue;
|
||||
|
|
@ -1997,6 +2008,38 @@ class PHPMailer
|
|||
return $this->smtp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Provide SMTP XCLIENT attributes
|
||||
*
|
||||
* @param string $name Attribute name
|
||||
* @param ?string $value Attribute value
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function setSMTPXclientAttribute($name, $value)
|
||||
{
|
||||
if (!in_array($name, SMTP::$xclient_allowed_attributes)) {
|
||||
return false;
|
||||
}
|
||||
if (isset($this->SMTPXClient[$name]) && $value === null) {
|
||||
unset($this->SMTPXClient[$name]);
|
||||
} elseif ($value !== null) {
|
||||
$this->SMTPXClient[$name] = $value;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get SMTP XCLIENT attributes
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getSMTPXclientAttributes()
|
||||
{
|
||||
return $this->SMTPXClient;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send mail via SMTP.
|
||||
* Returns false if there is a bad MAIL FROM, RCPT, or DATA input.
|
||||
|
|
@ -2025,6 +2068,9 @@ class PHPMailer
|
|||
} else {
|
||||
$smtp_from = $this->Sender;
|
||||
}
|
||||
if (count($this->SMTPXClient)) {
|
||||
$this->smtp->xclient($this->SMTPXClient);
|
||||
}
|
||||
if (!$this->smtp->mail($smtp_from)) {
|
||||
$this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError()));
|
||||
throw new Exception($this->ErrorInfo, self::STOP_CRITICAL);
|
||||
|
|
@ -2187,10 +2233,17 @@ class PHPMailer
|
|||
$this->smtp->hello($hello);
|
||||
//Automatically enable TLS encryption if:
|
||||
//* it's not disabled
|
||||
//* we are not connecting to localhost
|
||||
//* we have openssl extension
|
||||
//* we are not already using SSL
|
||||
//* the server offers STARTTLS
|
||||
if ($this->SMTPAutoTLS && $sslext && 'ssl' !== $secure && $this->smtp->getServerExt('STARTTLS')) {
|
||||
if (
|
||||
$this->SMTPAutoTLS &&
|
||||
$this->Host !== 'localhost' &&
|
||||
$sslext &&
|
||||
$secure !== 'ssl' &&
|
||||
$this->smtp->getServerExt('STARTTLS')
|
||||
) {
|
||||
$tls = true;
|
||||
}
|
||||
if ($tls) {
|
||||
|
|
@ -4047,6 +4100,79 @@ class PHPMailer
|
|||
$this->CustomHeader = [];
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear a specific custom header by name or name and value.
|
||||
* $name value can be overloaded to contain
|
||||
* both header name and value (name:value).
|
||||
*
|
||||
* @param string $name Custom header name
|
||||
* @param string|null $value Header value
|
||||
*
|
||||
* @return bool True if a header was replaced successfully
|
||||
*/
|
||||
public function clearCustomHeader($name, $value = null)
|
||||
{
|
||||
if (null === $value && strpos($name, ':') !== false) {
|
||||
//Value passed in as name:value
|
||||
list($name, $value) = explode(':', $name, 2);
|
||||
}
|
||||
$name = trim($name);
|
||||
$value = (null === $value) ? null : trim($value);
|
||||
|
||||
foreach ($this->CustomHeader as $k => $pair) {
|
||||
if ($pair[0] == $name) {
|
||||
// We remove the header if the value is not provided or it matches.
|
||||
if (null === $value || $pair[1] == $value) {
|
||||
unset($this->CustomHeader[$k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replace a custom header.
|
||||
* $name value can be overloaded to contain
|
||||
* both header name and value (name:value).
|
||||
*
|
||||
* @param string $name Custom header name
|
||||
* @param string|null $value Header value
|
||||
*
|
||||
* @return bool True if a header was replaced successfully
|
||||
* @throws Exception
|
||||
*/
|
||||
public function replaceCustomHeader($name, $value = null)
|
||||
{
|
||||
if (null === $value && strpos($name, ':') !== false) {
|
||||
//Value passed in as name:value
|
||||
list($name, $value) = explode(':', $name, 2);
|
||||
}
|
||||
$name = trim($name);
|
||||
$value = (null === $value) ? '' : trim($value);
|
||||
|
||||
$replaced = false;
|
||||
foreach ($this->CustomHeader as $k => $pair) {
|
||||
if ($pair[0] == $name) {
|
||||
if ($replaced) {
|
||||
unset($this->CustomHeader[$k]);
|
||||
continue;
|
||||
}
|
||||
if (strpbrk($name . $value, "\r\n") !== false) {
|
||||
if ($this->exceptions) {
|
||||
throw new Exception($this->lang('invalid_header'));
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
$this->CustomHeader[$k] = [$name, $value];
|
||||
$replaced = true;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an error message to the error container.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ class POP3
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '6.8.1';
|
||||
const VERSION = '6.9.1';
|
||||
|
||||
/**
|
||||
* Default POP3 port number.
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ class SMTP
|
|||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '6.8.1';
|
||||
const VERSION = '6.9.1';
|
||||
|
||||
/**
|
||||
* SMTP line break constant.
|
||||
|
|
@ -198,6 +198,18 @@ class SMTP
|
|||
'Mailjet' => '/[\d]{3} OK queued as (.*)/',
|
||||
];
|
||||
|
||||
/**
|
||||
* Allowed SMTP XCLIENT attributes.
|
||||
* Must be allowed by the SMTP server. EHLO response is not checked.
|
||||
*
|
||||
* @see https://www.postfix.org/XCLIENT_README.html
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $xclient_allowed_attributes = [
|
||||
'NAME', 'ADDR', 'PORT', 'PROTO', 'HELO', 'LOGIN', 'DESTADDR', 'DESTPORT'
|
||||
];
|
||||
|
||||
/**
|
||||
* The last transaction ID issued in response to a DATA command,
|
||||
* if one was detected.
|
||||
|
|
@ -971,6 +983,25 @@ class SMTP
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send SMTP XCLIENT command to server and check its return code.
|
||||
*
|
||||
* @return bool True on success
|
||||
*/
|
||||
public function xclient(array $vars)
|
||||
{
|
||||
$xclient_options = "";
|
||||
foreach ($vars as $key => $value) {
|
||||
if (in_array($key, SMTP::$xclient_allowed_attributes)) {
|
||||
$xclient_options .= " {$key}={$value}";
|
||||
}
|
||||
}
|
||||
if (!$xclient_options) {
|
||||
return true;
|
||||
}
|
||||
return $this->sendCommand('XCLIENT', 'XCLIENT' . $xclient_options, 250);
|
||||
}
|
||||
|
||||
/**
|
||||
* Send an SMTP RSET command.
|
||||
* Abort any transaction that is currently in progress.
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=(t,e,s)=>{const r="UL"===e?"InsertUnorderedList":"InsertOrderedList";t.execCommand(r,!1,!1===s?null:{"list-style-type":s})},s=t=>e=>e.options.get(t),r=s("advlist_number_styles"),n=s("advlist_bullet_styles"),i=t=>null==t,l=t=>!i(t);var o=tinymce.util.Tools.resolve("tinymce.util.Tools");class a{constructor(t,e){this.tag=t,this.value=e}static some(t){return new a(!0,t)}static none(){return a.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?a.some(t(this.value)):a.none()}bind(t){return this.tag?t(this.value):a.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:a.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(null!=t?t:"Called getOrDie on None")}static from(t){return l(t)?a.some(t):a.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}a.singletonNone=new a(!1);const u=t=>e=>l(e)&&t.test(e.nodeName),d=u(/^(OL|UL|DL)$/),g=u(/^(TH|TD)$/),c=t=>i(t)||"default"===t?"":t,h=(t,e)=>s=>((t,e)=>{const s=t.selection.getNode();return e({parents:t.dom.getParents(s),element:s}),t.on("NodeChange",e),()=>t.off("NodeChange",e)})(t,(r=>((t,r)=>{const n=t.selection.getStart(!0);s.setActive(((t,e,s)=>((t,e,s)=>{for(let e=0,n=t.length;e<n;e++){const n=t[e];if(d(r=n)&&!/\btox\-/.test(r.className))return a.some(n);if(s(n,e))break}var r;return a.none()})(e,0,g).exists((e=>e.nodeName===s&&((t,e)=>t.dom.isChildOf(e,t.getBody()))(t,e))))(t,r,e)),s.setEnabled(!((t,e)=>{const s=t.dom.getParent(e,"ol,ul,dl");return((t,e)=>null!==e&&!t.dom.isEditable(e))(t,s)&&t.selection.isEditable()})(t,n)&&t.selection.isEditable())})(t,r.parents))),m=(t,s,r,n,i,l)=>{l.length>1?((t,s,r,n,i,l)=>{t.ui.registry.addSplitButton(s,{tooltip:r,icon:"OL"===i?"ordered-list":"unordered-list",presets:"listpreview",columns:3,fetch:t=>{t(o.map(l,(t=>{const e="OL"===i?"num":"bull",s="disc"===t||"decimal"===t?"default":t,r=c(t),n=(t=>t.replace(/\-/g," ").replace(/\b\w/g,(t=>t.toUpperCase())))(t);return{type:"choiceitem",value:r,icon:"list-"+e+"-"+s,text:n}})))},onAction:()=>t.execCommand(n),onItemAction:(s,r)=>{e(t,i,r)},select:e=>{const s=(t=>{const e=t.dom.getParent(t.selection.getNode(),"ol,ul"),s=t.dom.getStyle(e,"listStyleType");return a.from(s)})(t);return s.map((t=>e===t)).getOr(!1)},onSetup:h(t,i)})})(t,s,r,n,i,l):((t,s,r,n,i,l)=>{t.ui.registry.addToggleButton(s,{active:!1,tooltip:r,icon:"OL"===i?"ordered-list":"unordered-list",onSetup:h(t,i),onAction:()=>t.queryCommandState(n)||""===l?t.execCommand(n):e(t,i,l)})})(t,s,r,n,i,c(l[0]))};t.add("advlist",(t=>{t.hasPlugin("lists")?((t=>{const e=t.options.register;e("advlist_number_styles",{processor:"string[]",default:"default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman".split(",")}),e("advlist_bullet_styles",{processor:"string[]",default:"default,circle,square".split(",")})})(t),(t=>{m(t,"numlist","Numbered list","InsertOrderedList","OL",r(t)),m(t,"bullist","Bullet list","InsertUnorderedList","UL",n(t))})(t),(t=>{t.addCommand("ApplyUnorderedListStyle",((s,r)=>{e(t,"UL",r["list-style-type"])})),t.addCommand("ApplyOrderedListStyle",((s,r)=>{e(t,"OL",r["list-style-type"])}))})(t)):console.error("Please use the Lists plugin together with the Advanced List plugin.")}))}();
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.dom.RangeUtils"),o=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=("allow_html_in_named_anchor",e=>e.options.get("allow_html_in_named_anchor"));const a="a:not([href])",r=e=>!e,i=e=>e.getAttribute("id")||e.getAttribute("name")||"",l=e=>(e=>"a"===e.nodeName.toLowerCase())(e)&&!e.getAttribute("href")&&""!==i(e),s=e=>e.dom.getParent(e.selection.getStart(),a),d=(e,a)=>{const r=s(e);r?((e,t,o)=>{o.removeAttribute("name"),o.id=t,e.addVisual(),e.undoManager.add()})(e,a,r):((e,a)=>{e.undoManager.transact((()=>{n(e)||e.selection.collapse(!0),e.selection.isCollapsed()?e.insertContent(e.dom.createHTML("a",{id:a})):((e=>{const n=e.dom;t(n).walk(e.selection.getRng(),(e=>{o.each(e,(e=>{var t;l(t=e)&&!t.firstChild&&n.remove(e,!1)}))}))})(e),e.formatter.remove("namedAnchor",void 0,void 0,!0),e.formatter.apply("namedAnchor",{value:a}),e.addVisual())}))})(e,a),e.focus()},c=e=>(e=>r(e.attr("href"))&&!r(e.attr("id")||e.attr("name")))(e)&&!e.firstChild,m=e=>t=>{for(let o=0;o<t.length;o++){const n=t[o];c(n)&&n.attr("contenteditable",e)}},u=e=>t=>{const o=()=>{t.setEnabled(e.selection.isEditable())};return e.on("NodeChange",o),o(),()=>{e.off("NodeChange",o)}};e.add("anchor",(e=>{(e=>{(0,e.options.register)("allow_html_in_named_anchor",{processor:"boolean",default:!1})})(e),(e=>{e.on("PreInit",(()=>{e.parser.addNodeFilter("a",m("false")),e.serializer.addNodeFilter("a",m(null))}))})(e),(e=>{e.addCommand("mceAnchor",(()=>{(e=>{const t=(e=>{const t=s(e);return t?i(t):""})(e);e.windowManager.open({title:"Anchor",size:"normal",body:{type:"panel",items:[{name:"id",type:"input",label:"ID",placeholder:"example"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{id:t},onSubmit:t=>{((e,t)=>/^[A-Za-z][A-Za-z0-9\-:._]*$/.test(t)?(d(e,t),!0):(e.windowManager.alert("ID should start with a letter, followed only by letters, numbers, dashes, dots, colons or underscores."),!1))(e,t.getData().id)&&t.close()}})})(e)}))})(e),(e=>{const t=()=>e.execCommand("mceAnchor");e.ui.registry.addToggleButton("anchor",{icon:"bookmark",tooltip:"Anchor",onAction:t,onSetup:t=>{const o=e.selection.selectorChangedWithUnbind("a:not([href])",t.setActive).unbind,n=u(e)(t);return()=>{o(),n()}}}),e.ui.registry.addMenuItem("anchor",{icon:"bookmark",text:"Anchor...",onAction:t,onSetup:u(e)})})(e),e.on("PreInit",(()=>{(e=>{e.formatter.register("namedAnchor",{inline:"a",selector:a,remove:"all",split:!0,deep:!0,attributes:{id:"%value"},onmatch:(e,t,o)=>l(e)})})(e)}))}))}();
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>t.options.get(e),n=t("autolink_pattern"),o=t("link_default_target"),r=t("link_default_protocol"),a=t("allow_unsafe_link_target"),s=("string",e=>"string"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=o=e,(r=String).prototype.isPrototypeOf(n)||(null===(a=o.constructor)||void 0===a?void 0:a.name)===r.name)?"string":t;var n,o,r,a})(e));const l=(void 0,e=>undefined===e);const i=e=>!(e=>null==e)(e),c=Object.hasOwnProperty,d=e=>"\ufeff"===e;var u=tinymce.util.Tools.resolve("tinymce.dom.TextSeeker");const f=e=>/^[(\[{ \u00a0]$/.test(e),g=(e,t,n)=>{for(let o=t-1;o>=0;o--){const t=e.charAt(o);if(!d(t)&&n(t))return o}return-1},m=(e,t)=>{var o;const a=e.schema.getVoidElements(),s=n(e),{dom:i,selection:d}=e;if(null!==i.getParent(d.getNode(),"a[href]"))return null;const m=d.getRng(),k=u(i,(e=>{return i.isBlock(e)||(t=a,n=e.nodeName.toLowerCase(),c.call(t,n))||"false"===i.getContentEditable(e);var t,n})),{container:p,offset:y}=((e,t)=>{let n=e,o=t;for(;1===n.nodeType&&n.childNodes[o];)n=n.childNodes[o],o=3===n.nodeType?n.data.length:n.childNodes.length;return{container:n,offset:o}})(m.endContainer,m.endOffset),w=null!==(o=i.getParent(p,i.isBlock))&&void 0!==o?o:i.getRoot(),h=k.backwards(p,y+t,((e,t)=>{const n=e.data,o=g(n,t,(r=f,e=>!r(e)));var r,a;return-1===o||(a=n[o],/[?!,.;:]/.test(a))?o:o+1}),w);if(!h)return null;let v=h.container;const _=k.backwards(h.container,h.offset,((e,t)=>{v=e;const n=g(e.data,t,f);return-1===n?n:n+1}),w),A=i.createRng();_?A.setStart(_.container,_.offset):A.setStart(v,0),A.setEnd(h.container,h.offset);const C=A.toString().replace(/\uFEFF/g,"").match(s);if(C){let t=C[0];return $="www.",(b=t).length>=4&&b.substr(0,4)===$?t=r(e)+"://"+t:((e,t,n=0,o)=>{const r=e.indexOf(t,n);return-1!==r&&(!!l(o)||r+t.length<=o)})(t,"@")&&!(e=>/^([A-Za-z][A-Za-z\d.+-]*:\/\/)|mailto:/.test(e))(t)&&(t="mailto:"+t),{rng:A,url:t}}var b,$;return null},k=(e,t)=>{const{dom:n,selection:r}=e,{rng:l,url:i}=t,c=r.getBookmark();r.setRng(l);const d="createlink",u={command:d,ui:!1,value:i};if(!e.dispatch("BeforeExecCommand",u).isDefaultPrevented()){e.getDoc().execCommand(d,!1,i),e.dispatch("ExecCommand",u);const t=o(e);if(s(t)){const o=r.getNode();n.setAttrib(o,"target",t),"_blank"!==t||a(e)||n.setAttrib(o,"rel","noopener")}}r.moveToBookmark(c),e.nodeChanged()},p=e=>{const t=m(e,-1);i(t)&&k(e,t)},y=p;e.add("autolink",(e=>{(e=>{const t=e.options.register;t("autolink_pattern",{processor:"regexp",default:new RegExp("^"+/(?:[A-Za-z][A-Za-z\d.+-]{0,14}:\/\/(?:[-.~*+=!&;:'%@?^${}(),\w]+@)?|www\.|[-;:&=+$,.\w]+@)[A-Za-z\d-]+(?:\.[A-Za-z\d-]+)*(?::\d+)?(?:\/(?:[-.~*+=!;:'%@$(),\/\w]*[-~*+=%@$()\/\w])?)?(?:\?(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?(?:#(?:[-.~*+=!&;:'%@?^${}(),\/\w]+))?/g.source+"$","i")}),t("link_default_target",{processor:"string"}),t("link_default_protocol",{processor:"string",default:"https"})})(e),(e=>{e.on("keydown",(t=>{13!==t.keyCode||t.isDefaultPrevented()||(e=>{const t=m(e,0);i(t)&&k(e,t)})(e)})),e.on("keyup",(t=>{32===t.keyCode?p(e):(48===t.keyCode&&t.shiftKey||221===t.keyCode)&&y(e)}))})(e)}))}();
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env");const o=e=>t=>t.options.get(e),s=o("min_height"),i=o("max_height"),n=o("autoresize_overflow_padding"),r=o("autoresize_bottom_margin"),l=(e,t)=>{const o=e.getBody();o&&(o.style.overflowY=t?"":"hidden",t||(o.scrollTop=0))},g=(e,t,o,s)=>{var i;const n=parseInt(null!==(i=e.getStyle(t,o,s))&&void 0!==i?i:"",10);return isNaN(n)?0:n},a=(e,o,r,c)=>{var d;const f=e.dom,u=e.getDoc();if(!u)return;if((e=>e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen())(e))return void l(e,!0);const m=u.documentElement,h=c?c():n(e),p=null!==(d=s(e))&&void 0!==d?d:e.getElement().offsetHeight;let y=p;const S=g(f,m,"margin-top",!0),v=g(f,m,"margin-bottom",!0);let C=m.offsetHeight+S+v+h;C<0&&(C=0);const b=e.getContainer().offsetHeight-e.getContentAreaContainer().offsetHeight;C+b>p&&(y=C+b);const w=i(e);if(w&&y>w?(y=w,l(e,!0)):l(e,!1),y!==o.get()){const s=y-o.get();if(f.setStyle(e.getContainer(),"height",y+"px"),o.set(y),(e=>{e.dispatch("ResizeEditor")})(e),t.browser.isSafari()&&(t.os.isMacOS()||t.os.isiOS())){const t=e.getWin();t.scrollTo(t.pageXOffset,t.pageYOffset)}e.hasFocus()&&(e=>{if("setcontent"===(null==e?void 0:e.type.toLowerCase())){const t=e;return!0===t.selection||!0===t.paste}return!1})(r)&&e.selection.scrollIntoView(),(t.browser.isSafari()||t.browser.isChromium())&&s<0&&a(e,o,r,c)}};e.add("autoresize",(e=>{if((e=>{const t=e.options.register;t("autoresize_overflow_padding",{processor:"number",default:1}),t("autoresize_bottom_margin",{processor:"number",default:50})})(e),e.options.isSet("resize")||e.options.set("resize",!1),!e.inline){const o=(e=>{let t=0;return{get:()=>t,set:e=>{t=e}}})();((e,t)=>{e.addCommand("mceAutoResize",(()=>{a(e,t)}))})(e,o),((e,o)=>{let s,i,l=()=>r(e);e.on("init",(i=>{s=0;const r=n(e),g=e.dom;g.setStyles(e.getDoc().documentElement,{height:"auto"}),t.browser.isEdge()||t.browser.isIE()?g.setStyles(e.getBody(),{paddingLeft:r,paddingRight:r,"min-height":0}):g.setStyles(e.getBody(),{paddingLeft:r,paddingRight:r}),a(e,o,i,l),s+=1})),e.on("NodeChange SetContent keyup FullscreenStateChanged ResizeContent",(t=>{if(1===s)i=e.getContainer().offsetHeight,a(e,o,t,l),s+=1;else if(2===s){const t=i<e.getContainer().offsetHeight;if(t){const t=e.dom,o=e.getDoc();t.setStyles(o.documentElement,{"min-height":0}),t.setStyles(e.getBody(),{"min-height":"inherit"})}l=t?(0,()=>0):l,s+=1}else a(e,o,t,l)}))})(e,o)}}))}();
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=("string",t=>"string"===(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(r=o=t,(a=String).prototype.isPrototypeOf(r)||(null===(s=o.constructor)||void 0===s?void 0:s.name)===a.name)?"string":e;var r,o,a,s})(t));const r=(void 0,t=>undefined===t);var o=tinymce.util.Tools.resolve("tinymce.util.Delay"),a=tinymce.util.Tools.resolve("tinymce.util.LocalStorage"),s=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=t=>{const e=/^(\d+)([ms]?)$/.exec(t);return(e&&e[2]?{s:1e3,m:6e4}[e[2]]:1)*parseInt(t,10)},i=t=>e=>e.options.get(t),u=i("autosave_ask_before_unload"),l=i("autosave_restore_when_empty"),c=i("autosave_interval"),d=i("autosave_retention"),m=t=>{const e=document.location;return t.options.get("autosave_prefix").replace(/{path}/g,e.pathname).replace(/{query}/g,e.search).replace(/{hash}/g,e.hash).replace(/{id}/g,t.id)},v=(t,e)=>{if(r(e))return t.dom.isEmpty(t.getBody());{const r=s.trim(e);if(""===r)return!0;{const e=(new DOMParser).parseFromString(r,"text/html");return t.dom.isEmpty(e)}}},f=t=>{var e;const r=parseInt(null!==(e=a.getItem(m(t)+"time"))&&void 0!==e?e:"0",10)||0;return!((new Date).getTime()-r>d(t)&&(p(t,!1),1))},p=(t,e)=>{const r=m(t);a.removeItem(r+"draft"),a.removeItem(r+"time"),!1!==e&&(t=>{t.dispatch("RemoveDraft")})(t)},g=t=>{const e=m(t);!v(t)&&t.isDirty()&&(a.setItem(e+"draft",t.getContent({format:"raw",no_events:!0})),a.setItem(e+"time",(new Date).getTime().toString()),(t=>{t.dispatch("StoreDraft")})(t))},y=t=>{var e;const r=m(t);f(t)&&(t.setContent(null!==(e=a.getItem(r+"draft"))&&void 0!==e?e:"",{format:"raw"}),(t=>{t.dispatch("RestoreDraft")})(t))};var D=tinymce.util.Tools.resolve("tinymce.EditorManager");const h=t=>e=>{e.setEnabled(f(t));const r=()=>e.setEnabled(f(t));return t.on("StoreDraft RestoreDraft RemoveDraft",r),()=>t.off("StoreDraft RestoreDraft RemoveDraft",r)};t.add("autosave",(t=>((t=>{const r=t.options.register,o=t=>{const r=e(t);return r?{value:n(t),valid:r}:{valid:!1,message:"Must be a string."}};r("autosave_ask_before_unload",{processor:"boolean",default:!0}),r("autosave_prefix",{processor:"string",default:"tinymce-autosave-{path}{query}{hash}-{id}-"}),r("autosave_restore_when_empty",{processor:"boolean",default:!1}),r("autosave_interval",{processor:o,default:"30s"}),r("autosave_retention",{processor:o,default:"20m"})})(t),(t=>{t.editorManager.on("BeforeUnload",(t=>{let e;s.each(D.get(),(t=>{t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&u(t)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))})),e&&(t.preventDefault(),t.returnValue=e)}))})(t),(t=>{(t=>{const e=c(t);o.setEditorInterval(t,(()=>{g(t)}),e)})(t);const e=()=>{(t=>{t.undoManager.transact((()=>{y(t),p(t)})),t.focus()})(t)};t.ui.registry.addButton("restoredraft",{tooltip:"Restore last draft",icon:"restore-draft",onAction:e,onSetup:h(t)}),t.ui.registry.addMenuItem("restoredraft",{text:"Restore last draft",icon:"restore-draft",onAction:e,onSetup:h(t)})})(t),t.on("init",(()=>{l(t)&&t.dom.isEmpty(t.getBody())&&y(t)})),(t=>({hasDraft:()=>f(t),storeDraft:()=>g(t),restoreDraft:()=>y(t),removeDraft:e=>p(t,e),isEmpty:e=>v(t,e)}))(t))))}();
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";tinymce.util.Tools.resolve("tinymce.PluginManager").add("code",(e=>((e=>{e.addCommand("mceCodeEditor",(()=>{(e=>{const o=(e=>e.getContent({source_view:!0}))(e);e.windowManager.open({title:"Source Code",size:"large",body:{type:"panel",items:[{type:"textarea",name:"code"}]},buttons:[{type:"cancel",name:"cancel",text:"Cancel"},{type:"submit",name:"save",text:"Save",primary:!0}],initialData:{code:o},onSubmit:o=>{((e,o)=>{e.focus(),e.undoManager.transact((()=>{e.setContent(o)})),e.selection.setCursorLocation(),e.nodeChanged()})(e,o.getData().code),o.close()}})})(e)}))})(e),(e=>{const o=()=>e.execCommand("mceCodeEditor");e.ui.registry.addButton("code",{icon:"sourcecode",tooltip:"Source code",onAction:o}),e.ui.registry.addMenuItem("code",{icon:"sourcecode",text:"Source code",onAction:o})})(e),{})))}();
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=t=>e=>typeof e===t,o=t=>"string"===(t=>{const e=typeof t;return null===t?"null":"object"===e&&Array.isArray(t)?"array":"object"===e&&(o=r=t,(n=String).prototype.isPrototypeOf(o)||(null===(i=r.constructor)||void 0===i?void 0:i.name)===n.name)?"string":e;var o,r,n,i})(t),r=e("boolean"),n=t=>!(t=>null==t)(t),i=e("function"),s=e("number"),l=(!1,()=>false);class a{constructor(t,e){this.tag=t,this.value=e}static some(t){return new a(!0,t)}static none(){return a.singletonNone}fold(t,e){return this.tag?e(this.value):t()}isSome(){return this.tag}isNone(){return!this.tag}map(t){return this.tag?a.some(t(this.value)):a.none()}bind(t){return this.tag?t(this.value):a.none()}exists(t){return this.tag&&t(this.value)}forall(t){return!this.tag||t(this.value)}filter(t){return!this.tag||t(this.value)?this:a.none()}getOr(t){return this.tag?this.value:t}or(t){return this.tag?this:t}getOrThunk(t){return this.tag?this.value:t()}orThunk(t){return this.tag?this:t()}getOrDie(t){if(this.tag)return this.value;throw new Error(null!=t?t:"Called getOrDie on None")}static from(t){return n(t)?a.some(t):a.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(t){this.tag&&t(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}a.singletonNone=new a(!1);const u=(t,e)=>{for(let o=0,r=t.length;o<r;o++)e(t[o],o)},c=t=>{if(null==t)throw new Error("Node cannot be null or undefined");return{dom:t}},d=c,h=(t,e)=>{const o=t.dom;if(1!==o.nodeType)return!1;{const t=o;if(void 0!==t.matches)return t.matches(e);if(void 0!==t.msMatchesSelector)return t.msMatchesSelector(e);if(void 0!==t.webkitMatchesSelector)return t.webkitMatchesSelector(e);if(void 0!==t.mozMatchesSelector)return t.mozMatchesSelector(e);throw new Error("Browser lacks native selectors")}};"undefined"!=typeof window?window:Function("return this;")();const m=t=>e=>(t=>t.dom.nodeType)(e)===t,g=m(1),f=m(3),v=m(9),y=m(11),p=(t,e)=>{t.dom.removeAttribute(e)},w=i(Element.prototype.attachShadow)&&i(Node.prototype.getRootNode)?t=>d(t.dom.getRootNode()):t=>v(t)?t:d(t.dom.ownerDocument),b=t=>d(t.dom.host),N=t=>{const e=f(t)?t.dom.parentNode:t.dom;if(null==e||null===e.ownerDocument)return!1;const o=e.ownerDocument;return(t=>{const e=w(t);return y(o=e)&&n(o.dom.host)?a.some(e):a.none();var o})(d(e)).fold((()=>o.body.contains(e)),(r=N,i=b,t=>r(i(t))));var r,i},S=t=>"rtl"===((t,e)=>{const o=t.dom,r=window.getComputedStyle(o).getPropertyValue(e);return""!==r||N(t)?r:((t,e)=>(t=>void 0!==t.style&&i(t.style.getPropertyValue))(t)?t.style.getPropertyValue(e):"")(o,e)})(t,"direction")?"rtl":"ltr",A=(t,e)=>((t,o)=>((t,e)=>{const o=[];for(let r=0,n=t.length;r<n;r++){const n=t[r];e(n,r)&&o.push(n)}return o})(((t,e)=>{const o=t.length,r=new Array(o);for(let n=0;n<o;n++){const o=t[n];r[n]=e(o,n)}return r})(t.dom.childNodes,d),(t=>h(t,e))))(t),E=("li",t=>g(t)&&"li"===t.dom.nodeName.toLowerCase());const T=(t,e,n)=>{u(e,(e=>{const c=d(e),m=E(c),f=((t,e)=>{return(e?(o=t,r="ol,ul",((t,e,o)=>{let n=t.dom;const s=i(o)?o:l;for(;n.parentNode;){n=n.parentNode;const t=d(n);if(h(t,r))return a.some(t);if(s(t))break}return a.none()})(o,0,n)):a.some(t)).getOr(t);var o,r,n})(c,m);var v;(v=f,(t=>a.from(t.dom.parentNode).map(d))(v).filter(g)).each((e=>{if(t.setStyle(f.dom,"direction",null),S(e)===n?p(f,"dir"):((t,e,n)=>{((t,e,n)=>{if(!(o(n)||r(n)||s(n)))throw console.error("Invalid call to Attribute.set. Key ",e,":: Value ",n,":: Element ",t),new Error("Attribute value was not simple");t.setAttribute(e,n+"")})(t.dom,e,n)})(f,"dir",n),S(f)!==n&&t.setStyle(f.dom,"direction",n),m){const e=A(f,"li[dir],li[style]");u(e,(e=>{p(e,"dir"),t.setStyle(e.dom,"direction",null)}))}}))}))},C=(t,e)=>{t.selection.isEditable()&&(T(t.dom,t.selection.getSelectedBlocks(),e),t.nodeChanged())},D=(t,e)=>o=>{const r=r=>{const n=d(r.element);o.setActive(S(n)===e),o.setEnabled(t.selection.isEditable())};return t.on("NodeChange",r),o.setEnabled(t.selection.isEditable()),()=>t.off("NodeChange",r)};t.add("directionality",(t=>{(t=>{t.addCommand("mceDirectionLTR",(()=>{C(t,"ltr")})),t.addCommand("mceDirectionRTL",(()=>{C(t,"rtl")}))})(t),(t=>{t.ui.registry.addToggleButton("ltr",{tooltip:"Left to right",icon:"ltr",onAction:()=>t.execCommand("mceDirectionLTR"),onSetup:D(t,"ltr")}),t.ui.registry.addToggleButton("rtl",{tooltip:"Right to left",icon:"rtl",onAction:()=>t.execCommand("mceDirectionRTL"),onSetup:D(t,"rtl")})})(t)}))}();
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ar',
|
|||
'\n' +
|
||||
'<p>للانتقال من أحد أقسام واجهة المستخدم إلى القسم السابق، اضغط على <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>ترتيب علامات <strong>Tab</strong> لأقسام واجهة المستخدم هذه هو:\n' +
|
||||
'<p>ترتيب علامات <strong>Tab</strong> لأقسام واجهة المستخدم هذه هو:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>شريط القوائم</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ar',
|
|||
'<p>إذا لم يكن قسم واجهة المستخدم موجودًا، فسيتم تخطيه.</p>\n' +
|
||||
'\n' +
|
||||
'<p>إذا كان التذييل يحتوي على التركيز على التنقل بواسطة لوحة المفاتيح، ولا يوجد شريط جانبي مرئي، فإن الضغط على <strong>Shift+Tab</strong>\n' +
|
||||
' ينقل التركيز إلى مجموعة شريط الأدوات الأولى، وليس الأخيرة.\n' +
|
||||
' ينقل التركيز إلى مجموعة شريط الأدوات الأولى، وليس الأخيرة.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>التنقل بين أقسام واجهة المستخدم</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ar',
|
|||
' <li>التنقل بين العناصر في مسار عنصر التذييل.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>مفتاحا السهمين <strong>لأسفل</strong> و<strong>لأعلى</strong>\n' +
|
||||
'<p>مفتاحا السهمين <strong>لأسفل</strong> و<strong>لأعلى</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>التنقل بين عناصر القائمة في القائمة.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ar',
|
|||
'\n' +
|
||||
'<p>دورة مفاتيح <strong>الأسهم</strong> داخل قسم واجهة المستخدم التي تم التركيز عليها.</p>\n' +
|
||||
'\n' +
|
||||
'<p>لإغلاق قائمة مفتوحة أو قائمة فرعية مفتوحة أو قائمة منبثقة مفتوحة، اضغط على مفتاح <strong>Esc</strong>.\n' +
|
||||
'<p>لإغلاق قائمة مفتوحة أو قائمة فرعية مفتوحة أو قائمة منبثقة مفتوحة، اضغط على مفتاح <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>إذا كان التركيز الحالي على "الجزء العلوي" من قسم معين لواجهة المستخدم، فإن الضغط على مفتاح <strong>Esc</strong> يؤدي أيضًا إلى الخروج\n' +
|
||||
' من التنقل بواسطة لوحة المفاتيح بالكامل.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ar',
|
|||
'<h1>تنفيذ عنصر قائمة أو زر شريط أدوات</h1>\n' +
|
||||
'\n' +
|
||||
'<p>عندما يتم تمييز عنصر القائمة المطلوب أو زر شريط الأدوات، اضغط على زر <strong>Return</strong>، أو <strong>Enter</strong>،\n' +
|
||||
' أو <strong>مفتاح المسافة</strong> لتنفيذ العنصر.\n' +
|
||||
' أو <strong>مفتاح المسافة</strong> لتنفيذ العنصر.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>التنقل في مربعات الحوار غير المبوبة</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.bg_BG',
|
|||
'\n' +
|
||||
'<p>За да преминете от един раздел на ПИ към предишния, натиснете <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Редът за <strong>обхождане с табулация</strong> на тези раздели на ПИ е:\n' +
|
||||
'<p>Редът за <strong>обхождане с табулация</strong> на тези раздели на ПИ е:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Лентата с менюта</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.bg_BG',
|
|||
'<p>Ако някой раздел на ПИ липсва, той се пропуска.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Ако долният колонтитул има фокус за навигация с клавиатурата и няма странична лента, натискането на <strong>Shift+Tab</strong>\n' +
|
||||
' премества фокуса към първата група на лентата с инструменти, а не към последната.\n' +
|
||||
' премества фокуса към първата група на лентата с инструменти, а не към последната.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Навигиране в разделите на ПИ</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.bg_BG',
|
|||
' <li>се придвижвате между елементи в пътя до елемент в долния колонтитул.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>С клавишите със стрелка <strong>надолу</strong> и <strong>нагоре</strong>\n' +
|
||||
'<p>С клавишите със стрелка <strong>надолу</strong> и <strong>нагоре</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>се придвижвате между елементите от менюто в дадено меню;</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.bg_BG',
|
|||
'\n' +
|
||||
'<p>Клавишите със <strong>стрелки</strong> се придвижват в рамките на фокусирания раздел на ПИ.</p>\n' +
|
||||
'\n' +
|
||||
'<p>За да затворите отворено меню, подменю или изскачащо меню, натиснете клавиша <strong>Esc</strong>.\n' +
|
||||
'<p>За да затворите отворено меню, подменю или изскачащо меню, натиснете клавиша <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Ако текущият фокус е върху „горната част“ на конкретен раздел на ПИ, натискането на клавиша <strong>Esc</strong> също излиза\n' +
|
||||
' напълно от навигацията с клавиатурата.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.bg_BG',
|
|||
'<h1>Изпълнение на елемент от менюто или бутон от лентата с инструменти</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Когато желаният елемент от менюто или бутон от лентата с инструменти е маркиран, натиснете <strong>Return</strong>, <strong>Enter</strong>\n' +
|
||||
' или <strong>клавиша за интервал</strong>, за да изпълните елемента.\n' +
|
||||
' или <strong>клавиша за интервал</strong>, за да изпълните елемента.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Навигиране в диалогови прозорци без раздели</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ca',
|
|||
'\n' +
|
||||
"<p>Per desplaçar-vos des d'una secció de la interfície d'usuari a l'anterior, premeu les tecles <strong>Maj+Tab</strong>.</p>\n" +
|
||||
'\n' +
|
||||
"<p>L'ordre en prémer la tecla <strong>Tab</strong> d'aquestes secciones de la interfície d'usuari és:\n" +
|
||||
"<p>L'ordre en prémer la tecla <strong>Tab</strong> d'aquestes secciones de la interfície d'usuari és:</p>\n" +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Barra de menús</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ca',
|
|||
"<p>Si no hi ha una secció de la interfície d'usuari, s'ometrà.</p>\n" +
|
||||
'\n' +
|
||||
'<p>Si el peu de pàgina té el focus de navegació del teclat i no hi ha cap barra lateral visible, en prémer <strong>Maj+Tab</strong>\n' +
|
||||
" el focus es mou al primer grup de la barra d'eines, no l'últim.\n" +
|
||||
" el focus es mou al primer grup de la barra d'eines, no l'últim.</p>\n" +
|
||||
'\n' +
|
||||
"<h1>Navegació dins de les seccions de la interfície d'usuari</h1>\n" +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ca',
|
|||
" <li>us permeten desplaçar-vos entre elements de la ruta d'elements del peu de pàgina.</li>\n" +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Les tecles de fletxa <strong>Avall</strong> i <strong>Amunt</strong>\n' +
|
||||
'<p>Les tecles de fletxa <strong>Avall</strong> i <strong>Amunt</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
" <li>us permeten desplaçar-vos entre elements de menú d'un menú.</li>\n" +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ca',
|
|||
'\n' +
|
||||
"<p>Les tecles de <strong>Fletxa</strong> us permeten desplaçar-vos dins de la secció de la interfície d'usuari que té el focus.</p>\n" +
|
||||
'\n' +
|
||||
'<p>Per tancar un menú, un submenú o un menú emergent oberts, premeu la tecla <strong>Esc</strong>.\n' +
|
||||
'<p>Per tancar un menú, un submenú o un menú emergent oberts, premeu la tecla <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
"<p>Si el focus actual es troba a la ‘part superior’ d'una secció específica de la interfície d'usuari, en prémer la tecla <strong>Esc</strong> també es tanca\n" +
|
||||
' completament la navegació amb el teclat.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ca',
|
|||
"<h1>Execució d'un element de menú o d'un botó de la barra d'eines</h1>\n" +
|
||||
'\n' +
|
||||
"<p>Quan l'element del menú o el botó de la barra d'eines que desitgeu estigui ressaltat, premeu <strong>Retorn</strong>, <strong>Intro</strong>\n" +
|
||||
" o la <strong>barra d'espai</strong> per executar l'element.\n" +
|
||||
" o la <strong>barra d'espai</strong> per executar l'element.</p>\n" +
|
||||
'\n' +
|
||||
'<h1>Navegació per quadres de diàleg sense pestanyes</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.cs',
|
|||
'\n' +
|
||||
'<p>Stisknutím kláves <strong>Shift+Tab</strong> se posunete z jednoho oddílu uživatelského rozhraní na předchozí.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Pořadí přepínání mezi oddíly uživatelského rozhraní pomocí klávesy <strong>Tab</strong>:\n' +
|
||||
'<p>Pořadí přepínání mezi oddíly uživatelského rozhraní pomocí klávesy <strong>Tab</strong>:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Řádek nabídek</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.cs',
|
|||
'<p>Pokud nějaký oddíl uživatelského rozhraní není přítomen, je přeskočen.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Pokud je zápatí vybrané pro navigaci pomocí klávesnice a není zobrazen žádný boční panel, stisknutím kláves <strong>Shift+Tab</strong>\n' +
|
||||
' přejdete na první skupinu panelu nástrojů, nikoli na poslední.\n' +
|
||||
' přejdete na první skupinu panelu nástrojů, nikoli na poslední.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigace v rámci oddílů uživatelského rozhraní</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.cs',
|
|||
' <li>umožňují přesun mezi položkami cesty prvku v zápatí.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Klávesy se šipkou <strong>dolů</strong> a <strong>nahoru</strong>\n' +
|
||||
'<p>Klávesy se šipkou <strong>dolů</strong> a <strong>nahoru</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>umožňují přesun mezi položkami nabídky;</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.cs',
|
|||
'\n' +
|
||||
'<p><strong>Šipky</strong> provádí přepínání v rámci vybraného oddílu uživatelského rozhraní.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Chcete-li zavřít otevřenou nabídku, podnabídku nebo místní nabídku, stiskněte klávesu <strong>Esc</strong>.\n' +
|
||||
'<p>Chcete-li zavřít otevřenou nabídku, podnabídku nebo místní nabídku, stiskněte klávesu <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Pokud je aktuálně vybrána horní část oddílu uživatelského rozhraní, stisknutím klávesy <strong>Esc</strong> zcela ukončíte také\n' +
|
||||
' navigaci pomocí klávesnice.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.cs',
|
|||
'<h1>Provedení příkazu položky nabídky nebo tlačítka panelu nástrojů</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Pokud je zvýrazněna požadovaná položka nabídky nebo tlačítko panelu nástrojů, stisknutím klávesy <strong>Return</strong>, <strong>Enter</strong>\n' +
|
||||
' nebo <strong>mezerníku</strong> provedete příslušný příkaz.\n' +
|
||||
' nebo <strong>mezerníku</strong> provedete příslušný příkaz.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigace v dialogových oknech bez záložek</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.da',
|
|||
'\n' +
|
||||
'<p>Gå fra én UI-sektion til den forrige ved at trykke på <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p><strong>Tab</strong>-rækkefølgen af disse UI-sektioner er:\n' +
|
||||
'<p><strong>Tab</strong>-rækkefølgen af disse UI-sektioner er:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Menulinje</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.da',
|
|||
'<p>Hvis en UI-sektion ikke er til stede, springes den over.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Hvis sidefoden har fokus til tastaturnavigation, og der ikke er noget synligt sidepanel, kan der trykkes på <strong>Shift+Tab</strong>\n' +
|
||||
' for at flytte fokus til den første værktøjsgruppe, ikke den sidste.\n' +
|
||||
' for at flytte fokus til den første værktøjsgruppe, ikke den sidste.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Naviger inden for UI-sektioner</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.da',
|
|||
' <li>flytter mellem elementer i sidefodens sti til elementet.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Pil <strong>ned</strong> og <strong>op</strong>\n' +
|
||||
'<p>Pil <strong>ned</strong> og <strong>op</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>flytter mellem menupunkterne i en menu.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.da',
|
|||
'\n' +
|
||||
'<p><strong>Piletasterne</strong> kører rundt inden for UI-sektionen, der fokuseres på.</p>\n' +
|
||||
'\n' +
|
||||
'<p>For at lukke en åben menu, en åben undermenu eller en åben genvejsmenu trykkes der på <strong>Esc</strong>-tasten.\n' +
|
||||
'<p>For at lukke en åben menu, en åben undermenu eller en åben genvejsmenu trykkes der på <strong>Esc</strong>-tasten.</p>\n' +
|
||||
'\n' +
|
||||
"<p>Hvis det aktuelle fokus er i 'toppen' af en bestemt UI-sektion, vil tryk på <strong>Esc</strong>-tasten også afslutte\n" +
|
||||
' tastaturnavigationen helt.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.da',
|
|||
'<h1>Udfør et menupunkt eller en værktøjslinjeknap</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Når det ønskede menupunkt eller den ønskede værktøjslinjeknap er fremhævet, trykkes der på <strong>Retur</strong>, <strong>Enter</strong>\n' +
|
||||
' eller <strong>mellemrumstasten</strong> for at udføre elementet.\n' +
|
||||
' eller <strong>mellemrumstasten</strong> for at udføre elementet.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Naviger i ikke-faneopdelte dialogbokse</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.de',
|
|||
'\n' +
|
||||
'<p>Um von einem Abschnitt der Benutzeroberfläche zum vorherigen zu wechseln, drücken Sie <strong>UMSCHALT+TAB</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Die Abschnitte der Benutzeroberfläche haben folgende <strong>TAB</strong>-Reihenfolge:\n' +
|
||||
'<p>Die Abschnitte der Benutzeroberfläche haben folgende <strong>TAB</strong>-Reihenfolge:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Menüleiste</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.de',
|
|||
'<p>Falls ein Abschnitt der Benutzeroberflächen nicht vorhanden ist, wird er übersprungen.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Wenn in der Fußzeile die Tastaturnavigation fokussiert ist und keine Randleiste angezeigt wird, wechselt der Fokus durch Drücken von <strong>UMSCHALT+TAB</strong>\n' +
|
||||
' zur ersten Gruppe der Symbolleiste, nicht zur letzten.\n' +
|
||||
' zur ersten Gruppe der Symbolleiste, nicht zur letzten.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Innerhalb von Abschnitten der Benutzeroberfläche navigieren</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.de',
|
|||
' <li>wechseln zwischen Elementen im Elementpfad der Fußzeile.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Die Pfeiltasten <strong>Abwärts</strong> und <strong>Aufwärts</strong>\n' +
|
||||
'<p>Die Pfeiltasten <strong>Abwärts</strong> und <strong>Aufwärts</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>wechseln zwischen Menüelementen in einem Menü.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.de',
|
|||
'\n' +
|
||||
'<p>Die <strong>Pfeiltasten</strong> rotieren innerhalb des fokussierten Abschnitts der Benutzeroberfläche.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Um ein geöffnetes Menü, ein geöffnetes Untermenü oder ein geöffnetes Popupmenü zu schließen, drücken Sie die <strong>ESC</strong>-Taste.\n' +
|
||||
'<p>Um ein geöffnetes Menü, ein geöffnetes Untermenü oder ein geöffnetes Popupmenü zu schließen, drücken Sie die <strong>ESC</strong>-Taste.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Wenn sich der aktuelle Fokus ganz oben in einem bestimmten Abschnitt der Benutzeroberfläche befindet, wird durch Drücken der <strong>ESC</strong>-Taste auch\n' +
|
||||
' die Tastaturnavigation beendet.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.de',
|
|||
'<h1>Ein Menüelement oder eine Symbolleistenschaltfläche ausführen</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Wenn das gewünschte Menüelement oder die gewünschte Symbolleistenschaltfläche hervorgehoben ist, drücken Sie <strong>Zurück</strong>, <strong>Eingabe</strong>\n' +
|
||||
' oder die <strong>Leertaste</strong>, um das Element auszuführen.\n' +
|
||||
' oder die <strong>Leertaste</strong>, um das Element auszuführen.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>In Dialogfeldern ohne Registerkarten navigieren</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.el',
|
|||
'\n' +
|
||||
'<p>Για να μετακινηθείτε από μια ενότητα περιβάλλοντος χρήστη στην προηγούμενη, πιέστε τα πλήκτρα <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Η σειρά <strong>Tab</strong> αυτών των ενοτήτων περιβάλλοντος χρήστη είναι η εξής:\n' +
|
||||
'<p>Η σειρά <strong>Tab</strong> αυτών των ενοτήτων περιβάλλοντος χρήστη είναι η εξής:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Γραμμή μενού</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.el',
|
|||
'<p>Εάν δεν εμφανίζεται ενότητα περιβάλλοντος χρήστη, παραλείπεται.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Εάν η εστίαση πλοήγησης βρίσκεται στο πληκτρολόγιο και δεν υπάρχει εμφανής πλαϊνή γραμμή, εάν πιέσετε <strong>Shift+Tab</strong>\n' +
|
||||
' η εστίαση μετακινείται στην πρώτη ομάδα γραμμής εργαλείων, όχι στην τελευταία.\n' +
|
||||
' η εστίαση μετακινείται στην πρώτη ομάδα γραμμής εργαλείων, όχι στην τελευταία.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Πλοήγηση εντός των ενοτήτων του περιβάλλοντος χρήστη</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.el',
|
|||
' <li>γίνεται μετακίνηση μεταξύ στοιχείων στη διαδρομή στοιχείου στο υποσέλιδο.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Με τα πλήκτρα <strong>επάνω</strong> και <strong>κάτω</strong> βέλους\n' +
|
||||
'<p>Με τα πλήκτρα <strong>επάνω</strong> και <strong>κάτω</strong> βέλους</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>γίνεται μετακίνηση μεταξύ των στοιχείων μενού σε ένα μενού.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.el',
|
|||
'\n' +
|
||||
'<p>Με τα πλήκτρα <strong>βέλους</strong> γίνεται κυκλική μετακίνηση εντός της εστιασμένης ενότητας περιβάλλοντος χρήστη.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Για να κλείσετε ένα ανοιχτό μενού, ένα ανοιχτό υπομενού ή ένα ανοιχτό αναδυόμενο μενού, πιέστε το πλήκτρο <strong>Esc</strong>.\n' +
|
||||
'<p>Για να κλείσετε ένα ανοιχτό μενού, ένα ανοιχτό υπομενού ή ένα ανοιχτό αναδυόμενο μενού, πιέστε το πλήκτρο <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Εάν η τρέχουσα εστίαση βρίσκεται στην κορυφή μιας ενότητας περιβάλλοντος χρήστη, πιέζοντας το πλήκτρο <strong>Esc</strong>,\n' +
|
||||
' γίνεται επίσης πλήρης έξοδος από την πλοήγηση μέσω πληκτρολογίου.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.el',
|
|||
'<h1>Εκτέλεση ενός στοιχείου μενού ή κουμπιού γραμμής εργαλείων</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Όταν το επιθυμητό στοιχείο μενού ή κουμπί γραμμής εργαλείων είναι επισημασμένο, πιέστε τα πλήκτρα <strong>Return</strong>, <strong>Enter</strong>,\n' +
|
||||
' ή το <strong>πλήκτρο διαστήματος</strong> για να εκτελέσετε το στοιχείο.\n' +
|
||||
' ή το <strong>πλήκτρο διαστήματος</strong> για να εκτελέσετε το στοιχείο.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Πλοήγηση σε παράθυρα διαλόγου χωρίς καρτέλες</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.en',
|
|||
'\n' +
|
||||
'<p>To move from one UI section to the previous, press <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>The <strong>Tab</strong> order of these UI sections is:\n' +
|
||||
'<p>The <strong>Tab</strong> order of these UI sections is:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Menu bar</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.en',
|
|||
'<p>If a UI section is not present, it is skipped.</p>\n' +
|
||||
'\n' +
|
||||
'<p>If the footer has keyboard navigation focus, and there is no visible sidebar, pressing <strong>Shift+Tab</strong>\n' +
|
||||
' moves focus to the first toolbar group, not the last.\n' +
|
||||
' moves focus to the first toolbar group, not the last.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigate within UI sections</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.en',
|
|||
' <li>move between items in the footer’s element path.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>The <strong>Down</strong> and <strong>Up</strong> arrow keys\n' +
|
||||
'<p>The <strong>Down</strong> and <strong>Up</strong> arrow keys</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>move between menu items in a menu.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.en',
|
|||
'\n' +
|
||||
'<p><strong>Arrow</strong> keys cycle within the focused UI section.</p>\n' +
|
||||
'\n' +
|
||||
'<p>To close an open menu, an open sub-menu, or an open pop-up menu, press the <strong>Esc</strong> key.\n' +
|
||||
'<p>To close an open menu, an open sub-menu, or an open pop-up menu, press the <strong>Esc</strong> key.</p>\n' +
|
||||
'\n' +
|
||||
'<p>If the current focus is at the ‘top’ of a particular UI section, pressing the <strong>Esc</strong> key also exits\n' +
|
||||
' keyboard navigation entirely.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.en',
|
|||
'<h1>Execute a menu item or toolbar button</h1>\n' +
|
||||
'\n' +
|
||||
'<p>When the desired menu item or toolbar button is highlighted, press <strong>Return</strong>, <strong>Enter</strong>,\n' +
|
||||
' or the <strong>Space bar</strong> to execute the item.\n' +
|
||||
' or the <strong>Space bar</strong> to execute the item.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigate non-tabbed dialogs</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.es',
|
|||
'\n' +
|
||||
'<p>Para pasar de una sección de la IU a la anterior, pulse <strong>Mayús+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>El orden de <strong>tabulación</strong> de estas secciones de la IU es:\n' +
|
||||
'<p>El orden de <strong>tabulación</strong> de estas secciones de la IU es:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Barra de menús</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.es',
|
|||
'<p>Si una sección de la IU no está presente, esta se omite.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Si el pie de página tiene un enfoque de navegación con el teclado y no hay ninguna barra lateral visible, al pulsar <strong>Mayús+Tab</strong>,\n' +
|
||||
' el enfoque se moverá al primer grupo de barra de herramientas, en lugar de al último.\n' +
|
||||
' el enfoque se moverá al primer grupo de barra de herramientas, en lugar de al último.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navegar dentro de las secciones de la IU</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.es',
|
|||
' <li>desplazarse entre los elementos de la ruta de elemento del pie de página.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Las teclas de flecha <strong>abajo</strong> y <strong>arriba</strong> permiten\n' +
|
||||
'<p>Las teclas de flecha <strong>abajo</strong> y <strong>arriba</strong> permiten</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>desplazarse entre los elementos de menú de un menú.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.es',
|
|||
'\n' +
|
||||
'<p>Las teclas de <strong>flecha</strong> van cambiando dentro de la sección de la IU enfocada.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Para cerrar un menú, un submenú o un menú emergente que estén abiertos, pulse la tecla <strong>Esc</strong>.\n' +
|
||||
'<p>Para cerrar un menú, un submenú o un menú emergente que estén abiertos, pulse la tecla <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Si el enfoque actual se encuentra en la parte superior de una sección de la IU determinada, al pulsar la tecla <strong>Esc</strong> saldrá\n' +
|
||||
' de la navegación con el teclado por completo.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.es',
|
|||
'<h1>Ejecutar un elemento de menú o un botón de barra de herramientas</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Si el elemento de menú o el botón de barra de herramientas deseado está resaltado, pulse la tecla <strong>Retorno</strong> o <strong>Entrar</strong>,\n' +
|
||||
' o la <strong>barra espaciadora</strong> para ejecutar el elemento.\n' +
|
||||
' o la <strong>barra espaciadora</strong> para ejecutar el elemento.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navegar por cuadros de diálogo sin pestañas</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.eu',
|
|||
'\n' +
|
||||
'<p>EIko atal batetik aurrekora mugitzeko, sakatu <strong>Maius+Tabuladorea</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>EIko atal hauen <strong>Tabuladorea</strong> da:\n' +
|
||||
'<p>EIko atal hauen <strong>Tabuladorea</strong> da:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Menu-barra</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.eu',
|
|||
'<p>EIko atal bat ez badago, saltatu egin da.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Orri-oinak teklatuaren nabigazioa fokuratuta badago, eta alboko barra ikusgai ez badago, <strong>Maius+Tabuladorea</strong> sakatuz gero,\n' +
|
||||
' fokua tresna-barrako lehen taldera eramaten da, ez azkenera.\n' +
|
||||
' fokua tresna-barrako lehen taldera eramaten da, ez azkenera.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Nabigatu EIko atalen barruan</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.eu',
|
|||
' <li>mugitu orri-oineko elementuaren bideko elementu batetik bestera.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p><strong>Gora</strong> eta <strong>Behera</strong> gezi-teklak\n' +
|
||||
'<p><strong>Gora</strong> eta <strong>Behera</strong> gezi-teklak</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>mugitu menu bateko menu-elementuen artean.</li>\n' +
|
||||
|
|
@ -63,15 +63,15 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.eu',
|
|||
'\n' +
|
||||
'<p><strong>Gezia</strong> teklen zikloa nabarmendutako EI atalen barruan.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Irekitako menu bat ixteko, ireki azpimenua, edo ireki menu gainerakorra, sakatu <strong>Ihes</strong> tekla.\n' +
|
||||
'<p>Irekitako menu bat ixteko, ireki azpimenua, edo ireki menu gainerakorra, sakatu <strong>Ihes</strong> tekla.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Une horretan fokuratzea EIko atal jakin baten "goialdean" badago, <strong>Ihes</strong> tekla sakatuz gero \n' +
|
||||
'<p>Une horretan fokuratzea EIko atal jakin baten "goialdean" badago, <strong>Ihes</strong> tekla sakatuz gero\n' +
|
||||
' teklatuaren nabigaziotik irtengo zara.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Exekutatu menuko elementu bat edo tresna-barrako botoi bat</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Nahi den menuaren elementua edo tresna-barraren botoia nabarmenduta dagoenean, sakatu <strong>Itzuli</strong>, <strong>Sartu</strong>\n' +
|
||||
' edo <strong>Zuriune-barra</strong> elementua exekutatzeko.\n' +
|
||||
' edo <strong>Zuriune-barra</strong> elementua exekutatzeko.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Nabigatu fitxarik gabeko elkarrizketak</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fa',
|
|||
'\n' +
|
||||
'<p>برای جابجایی از یک بخش رابط کاربری به بخش قبلی، <strong>Shift+Tab</strong> را فشار دهید.</p>\n' +
|
||||
'\n' +
|
||||
'<p>ترتیب <strong>Tab</strong> این بخشهای رابط کاربری عبارتند از:\n' +
|
||||
'<p>ترتیب <strong>Tab</strong> این بخشهای رابط کاربری عبارتند از:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>نوار منو</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fa',
|
|||
'<p>اگر بخشی از رابط کاربری موجود نباشد، رد میشود.</p>\n' +
|
||||
'\n' +
|
||||
'<p>اگر پانویس دارای تمرکز بر پیمایش صفحهکلید باشد، و نوار کناری قابلمشاهده وجود ندارد، فشردن <strong>Shift+Tab</strong>\n' +
|
||||
' تمرکز را به گروه نوار ابزار اول میبرد، نه آخر.\n' +
|
||||
' تمرکز را به گروه نوار ابزار اول میبرد، نه آخر.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>پیمایش در بخشهای رابط کاربری</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fa',
|
|||
' <li>جابجایی بین موارد در مسیر عنصر پانویس.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>کلیدهای جهتنمای <strong>پایین</strong> و <strong>بالا</strong>\n' +
|
||||
'<p>کلیدهای جهتنمای <strong>پایین</strong> و <strong>بالا</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>جابجایی بین موارد منو در یک منو.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fa',
|
|||
'\n' +
|
||||
'<p>کلیدهای<strong>جهتنما</strong> در بخش رابط کاربری متمرکز میچرخند.</p>\n' +
|
||||
'\n' +
|
||||
'<p>برای بستن یک منوی باز، یک منوی فرعی باز، یا یک منوی بازشوی باز، کلید <strong>Esc</strong> را فشار دهید.\n' +
|
||||
'<p>برای بستن یک منوی باز، یک منوی فرعی باز، یا یک منوی بازشوی باز، کلید <strong>Esc</strong> را فشار دهید.</p>\n' +
|
||||
'\n' +
|
||||
'<p>اگر تمرکز فعلی در «بالای» یک بخش رابط کاربری خاص است، فشردن کلید <strong>Esc</strong> نیز موجب\n' +
|
||||
' خروج کامل از پیمایش صفحهکلید میشود.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fa',
|
|||
'<h1>اجرای یک مورد منو یا دکمه نوار ابزار</h1>\n' +
|
||||
'\n' +
|
||||
'<p>وقتی مورد منو یا دکمه نوار ابزار مورد نظر هایلایت شد، دکمه <strong>بازگشت</strong>، <strong>Enter</strong>،\n' +
|
||||
' یا <strong>نوار Space</strong> را فشار دهید تا مورد را اجرا کنید.\n' +
|
||||
' یا <strong>نوار Space</strong> را فشار دهید تا مورد را اجرا کنید.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>پیمایش در کادرهای گفتگوی بدون زبانه</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fi',
|
|||
'\n' +
|
||||
'<p>Jos haluat siirtyä edelliseen käyttöliittymän osaan, paina <strong>Shift+sarkainnäppäin</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p><strong>Sarkainnäppäin</strong> siirtää sinua näissä käyttöliittymän osissa tässä järjestyksessä:\n' +
|
||||
'<p><strong>Sarkainnäppäin</strong> siirtää sinua näissä käyttöliittymän osissa tässä järjestyksessä:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Valikkopalkki</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fi',
|
|||
'<p>Jos jotakin käyttöliittymän osaa ei ole, se ohitetaan.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Jos kohdistus on siirretty alatunnisteeseen näppäimistönavigoinnilla eikä sivupalkkia ole näkyvissä, <strong>Shift+sarkainnäppäin</strong>\n' +
|
||||
' siirtää kohdistuksen työkalupalkin ensimmäiseen ryhmään, eikä viimeiseen.\n' +
|
||||
' siirtää kohdistuksen työkalupalkin ensimmäiseen ryhmään, eikä viimeiseen.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Käyttöliittymän eri osien sisällä navigointi</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fi',
|
|||
' <li>siirtävät sinua kohteiden välillä alatunnisteen elementin polussa.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p><strong>Alas</strong>- ja <strong>Ylös</strong>-nuolinäppäimet\n' +
|
||||
'<p><strong>Alas</strong>- ja <strong>Ylös</strong>-nuolinäppäimet</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>siirtävät sinua valikon valikkokohteiden välillä.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fi',
|
|||
'\n' +
|
||||
'<p><strong>Nuolinäppäimet</strong> siirtävät sinua käyttöliittymän korostetun osan sisällä syklissä.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Paina <strong>Esc</strong>-näppäintä sulkeaksesi avoimen valikon, avataksesi alavalikon tai avataksesi ponnahdusvalikon.\n' +
|
||||
'<p>Paina <strong>Esc</strong>-näppäintä sulkeaksesi avoimen valikon, avataksesi alavalikon tai avataksesi ponnahdusvalikon.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Jos kohdistus on käyttöliittymän tietyn osion ylälaidassa, <strong>Esc</strong>-näppäimen painaminen\n' +
|
||||
' poistuu myös näppäimistönavigoinnista kokonaan.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fi',
|
|||
'<h1>Suorita valikkokohde tai työkalupalkin painike</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Kun haluamasi valikkokohde tai työkalupalkin painike on korostettuna, paina <strong>Return</strong>-, <strong>Enter</strong>-\n' +
|
||||
' tai <strong>välilyöntinäppäintä</strong> suorittaaksesi kohteen.\n' +
|
||||
' tai <strong>välilyöntinäppäintä</strong> suorittaaksesi kohteen.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Välilehdittömissä valintaikkunoissa navigointi</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fr_FR',
|
|||
'\n' +
|
||||
"<p>Pour passer d'une section de l'interface utilisateur à la précédente, appuyez sur <strong>Maj+Tabulation</strong>.</p>\n" +
|
||||
'\n' +
|
||||
"<p>L'ordre de <strong>Tabulation</strong> de ces sections de l'interface utilisateur est le suivant :\n" +
|
||||
"<p>L'ordre de <strong>Tabulation</strong> de ces sections de l'interface utilisateur est le suivant :</p>\n" +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Barre du menu</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fr_FR',
|
|||
"<p>Si une section de l'interface utilisateur n'est pas présente, elle sera ignorée.</p>\n" +
|
||||
'\n' +
|
||||
"<p>Si le pied de page comporte un ciblage par navigation au clavier et qu'il n'y a aucune barre latérale visible, appuyer sur <strong>Maj+Tabulation</strong>\n" +
|
||||
" déplace le ciblage vers le premier groupe de barres d'outils et non le dernier.\n" +
|
||||
" déplace le ciblage vers le premier groupe de barres d'outils et non le dernier.</p>\n" +
|
||||
'\n' +
|
||||
"<h1>Naviguer au sein des sections de l'interface utilisateur</h1>\n" +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fr_FR',
|
|||
" <li>se déplacent entre les éléments du chemin d'éléments du pied de page.</li>\n" +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Les touches fléchées <strong>Bas</strong> et <strong>Haut</strong>\n' +
|
||||
'<p>Les touches fléchées <strong>Bas</strong> et <strong>Haut</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
" <li>se déplacent entre les éléments de menu au sein d'un menu.</li>\n" +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fr_FR',
|
|||
'\n' +
|
||||
"<p>Les <strong>Flèches</strong> parcourent la section de l'interface utilisateur ciblée.</p>\n" +
|
||||
'\n' +
|
||||
'<p>Pour fermer un menu ouvert, un sous-menu ouvert ou un menu contextuel ouvert, appuyez sur <strong>Echap</strong>.\n' +
|
||||
'<p>Pour fermer un menu ouvert, un sous-menu ouvert ou un menu contextuel ouvert, appuyez sur <strong>Echap</strong>.</p>\n' +
|
||||
'\n' +
|
||||
"<p>Si l'actuel ciblage se trouve en « haut » d'une section spécifique de l'interface utilisateur, appuyer sur <strong>Echap</strong> permet également de quitter\n" +
|
||||
' entièrement la navigation au clavier.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.fr_FR',
|
|||
"<h1>Exécuter un élément de menu ou un bouton de barre d'outils</h1>\n" +
|
||||
'\n' +
|
||||
"<p>Lorsque l'élément de menu ou le bouton de barre d'outils désiré est mis en surbrillance, appuyez sur la touche <strong>Retour arrière</strong>, <strong>Entrée</strong>\n" +
|
||||
" ou la <strong>Barre d'espace</strong> pour exécuter l'élément.\n" +
|
||||
" ou la <strong>Barre d'espace</strong> pour exécuter l'élément.</p>\n" +
|
||||
'\n' +
|
||||
'<h1>Naviguer au sein de dialogues sans onglets</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.he_IL',
|
|||
'\n' +
|
||||
'<p>כדי לעבור למקטע הקודם במסך, הקש <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>הסדר מבחינת מקש <strong>Tab</strong> של הרכיבים במסך:\n' +
|
||||
'<p>הסדר מבחינת מקש <strong>Tab</strong> של הרכיבים במסך:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>שורת התפריטים</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.he_IL',
|
|||
'<p>אם רכיב כלשהו במסך לא מופיע, המערכת תדלג עליו.</p>\n' +
|
||||
'\n' +
|
||||
'<p>אם בכותרת התחתונה יש מיקוד של ניווט במקלדת, ולא מופיע סרגל בצד, יש להקיש <strong>Shift+Tab</strong>\n' +
|
||||
' מעביר את המיקוד לקבוצה הראשונה בסרגל הכלים, לא האחרונה.\n' +
|
||||
' מעביר את המיקוד לקבוצה הראשונה בסרגל הכלים, לא האחרונה.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>עבור בתוך מקטעים במסך</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.he_IL',
|
|||
' <li>עבור בין פריטים ברכיב בכותרת התחתונה.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>מקשי החיצים <strong>למטה</strong> ו<strong>למעלה</strong>\n' +
|
||||
'<p>מקשי החיצים <strong>למטה</strong> ו<strong>למעלה</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>עבור בין פריטים בתפריט.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.he_IL',
|
|||
'\n' +
|
||||
'<p>מקשי <strong>החצים</strong> משתנים בתוך המקטע במסך שעליו נמצא המיקוד.</p>\n' +
|
||||
'\n' +
|
||||
'<p>כדי לסגור תפריט פתוח, תפריט משני פתוח או חלון קופץ, הקש על <strong>Esc</strong>.\n' +
|
||||
'<p>כדי לסגור תפריט פתוח, תפריט משני פתוח או חלון קופץ, הקש על <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
"<p>אם המיקוד הוא על החלק 'העליון' של מקטע מסוים במסך, הקשה על <strong>Esc</strong> מביאה גם ליציאה\n" +
|
||||
' מהניווט במקלדת לחלוטין.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.he_IL',
|
|||
'<h1>הפעל פריט בתפריט או לחצן בסרגל הכלים</h1>\n' +
|
||||
'\n' +
|
||||
'<p>כאשר הפריט הרצוי בתפריט או הלחצן בסרגל הכלים מודגשים, הקש על <strong>Return</strong>, <strong>Enter</strong>,\n' +
|
||||
' או על <strong>מקש הרווח</strong> כדי להפעיל את הפריט.\n' +
|
||||
' או על <strong>מקש הרווח</strong> כדי להפעיל את הפריט.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>ניווט בחלונות דו-שיח בלי כרטיסיות</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hi',
|
|||
'\n' +
|
||||
'<p>एक UI सेक्शन से पिछले सेक्शन में जाने के लिए, <strong>Shift+Tab</strong> दबाएं।</p>\n' +
|
||||
'\n' +
|
||||
'<p>इन UI सेक्शन का <strong>Tab</strong> क्रम नीचे दिया गया है:\n' +
|
||||
'<p>इन UI सेक्शन का <strong>Tab</strong> क्रम नीचे दिया गया है:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>मेन्यू बार</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hi',
|
|||
'<p>अगर कोई UI सेक्शन मौजूद नहीं है, तो उसे छोड़ दिया जाता है।</p>\n' +
|
||||
'\n' +
|
||||
'<p>अगर फ़ुटर में कीबोर्ड नेविगेशन फ़ोकस है, और कोई दिखा देने वाला साइडबार नहीं है, तो <strong>Shift+Tab</strong> दबाने से\n' +
|
||||
' फ़ोकस पहले टूलबार समूह पर चला जाता है, पिछले पर नहीं।\n' +
|
||||
' फ़ोकस पहले टूलबार समूह पर चला जाता है, पिछले पर नहीं।</p>\n' +
|
||||
'\n' +
|
||||
'<h1>UI सेक्शन के भीतर नेविगेट करें</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hi',
|
|||
' <li>फ़ुटर के तत्व पथ में आइटम के बीच ले जाएं।</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p><strong>नीचे</strong> और <strong>ऊपर</strong> ऐरो कुंजियां\n' +
|
||||
'<p><strong>नीचे</strong> और <strong>ऊपर</strong> ऐरो कुंजियां</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>मेन्यू में मेन्यू आइटम के बीच ले जाती हैं।</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hi',
|
|||
'\n' +
|
||||
'<p>फ़ोकस वाले UI सेक्शन के भीतर <strong>ऐरो</strong> कुंजियां चलाती रहती हैं।</p>\n' +
|
||||
'\n' +
|
||||
'<p>कोई खुला मेन्यू, कोई खुला सब-मेन्यू या कोई खुला पॉप-अप मेन्यू बंद करने के लिए <strong>Esc</strong> कुंजी दबाएं।\n' +
|
||||
'<p>कोई खुला मेन्यू, कोई खुला सब-मेन्यू या कोई खुला पॉप-अप मेन्यू बंद करने के लिए <strong>Esc</strong> कुंजी दबाएं।</p>\n' +
|
||||
'\n' +
|
||||
"<p>अगर मौजूदा फ़ोकस किसी विशेष UI सेक्शन के 'शीर्ष' पर है, तो <strong>Esc</strong> कुंजी दबाने से भी\n" +
|
||||
' कीबोर्ड नेविगेशन पूरी तरह से बाहर हो जाता है।</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hi',
|
|||
'<h1>मेन्यू आइटम या टूलबार बटन निष्पादित करें</h1>\n' +
|
||||
'\n' +
|
||||
'<p>जब वांछित मेन्यू आइटम या टूलबार बटन हाइलाइट किया जाता है, तो आइटम को निष्पादित करने के लिए <strong>Return</strong>, <strong>Enter</strong>,\n' +
|
||||
' या <strong>Space bar</strong> दबाएं।\n' +
|
||||
' या <strong>Space bar</strong> दबाएं।</p>\n' +
|
||||
'\n' +
|
||||
'<h1>गैर-टैब वाले डायलॉग पर नेविगेट करें</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hr',
|
|||
'\n' +
|
||||
'<p>Za pomicanje s jednog dijela korisničkog sučelja na prethodni pritisnite <strong>Shift + tabulator</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Ovo je redoslijed pomicanja <strong>tabulatora</strong> po dijelovima korisničkog sučelja:\n' +
|
||||
'<p>Ovo je redoslijed pomicanja <strong>tabulatora</strong> po dijelovima korisničkog sučelja:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Traka izbornika</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hr',
|
|||
'<p>Ako neki dio korisničkog sučelja nije naveden, on se preskače.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Ako u podnožju postoji fokus za navigaciju na tipkovnici, a nema vidljive bočne trake, pritiskom na <strong>Shift + tabulator</strong>\n' +
|
||||
' fokus se prebacuje na prvu skupinu na alatnoj traci, ne na zadnju.\n' +
|
||||
' fokus se prebacuje na prvu skupinu na alatnoj traci, ne na zadnju.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigacija unutar dijelova korisničkog sučelja</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hr',
|
|||
' <li>služe za pomicanje između stavki na elementu puta u podnožju.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Tipke s <strong>donjom</strong> i <strong>gornjom</strong> strelicom\n' +
|
||||
'<p>Tipke s <strong>donjom</strong> i <strong>gornjom</strong> strelicom</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>služe za pomicanje između stavki unutar izbornika.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hr',
|
|||
'\n' +
|
||||
'<p>Tipkama <strong>strelica</strong> kružno se pomičete unutar dijela korisničkog sučelja koji je u fokusu.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Za zatvaranje otvorenog izbornika, otvorenog podizbornika ili otvorenog skočnog izbornika pritisnite tipku <strong>Esc</strong>.\n' +
|
||||
'<p>Za zatvaranje otvorenog izbornika, otvorenog podizbornika ili otvorenog skočnog izbornika pritisnite tipku <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Ako je fokus trenutačno postavljen na vrh pojedinačnog dijela korisničkog sučelja, pritiskom na tipku <strong>Esc</strong> također\n' +
|
||||
' u potpunosti zatvarate navigaciju na tipkovnici.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hr',
|
|||
'<h1>Izvršavanje radnji putem stavki izbornika ili gumba na alatnoj traci</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Nakon što se istakne stavka izbornika ili gumb na alatnoj traci s radnjom koju želite izvršiti, pritisnite tipku <strong>Return</strong>, <strong>Enter</strong>\n' +
|
||||
' ili <strong>razmak</strong> da biste pokrenuli željenu radnju.\n' +
|
||||
' ili <strong>razmak</strong> da biste pokrenuli željenu radnju.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigacija dijaloškim okvirima izvan kartica</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hu_HU',
|
|||
'\n' +
|
||||
'<p>A felhasználói felület előző szakaszára váltáshoz nyomja meg a <strong>Shift+Tab</strong> billentyűt.</p>\n' +
|
||||
'\n' +
|
||||
'<p>A <strong>Tab</strong> billentyűvel a felhasználói felület szakaszai között a következő sorrendben vált:\n' +
|
||||
'<p>A <strong>Tab</strong> billentyűvel a felhasználói felület szakaszai között a következő sorrendben vált:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Menüsáv</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hu_HU',
|
|||
'<p>Ha a felhasználói felület valamelyik eleme nincs jelen, a rendszer kihagyja.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Ha a billentyűzetes navigáció fókusza a láblécen van, és nincs látható oldalsáv, a <strong>Shift+Tab</strong>\n' +
|
||||
' billentyűkombináció lenyomásakor az első eszköztárcsoportra ugrik a fókusz, nem az utolsóra.\n' +
|
||||
' billentyűkombináció lenyomásakor az első eszköztárcsoportra ugrik a fókusz, nem az utolsóra.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigálás a felhasználói felület szakaszain belül</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hu_HU',
|
|||
' <li>a lábléc elemútvonalán az elemek között vált.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>A <strong>le</strong> és a <strong>fel</strong> nyílgomb\n' +
|
||||
'<p>A <strong>le</strong> és a <strong>fel</strong> nyílgomb</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>a menükben a menüpontok között vált.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hu_HU',
|
|||
'\n' +
|
||||
'<p>A <strong>nyílbillentyűk</strong> lenyomásával körkörösen lépkedhet a fókuszban lévő felhasználói felületi szakasz elemei között.</p>\n' +
|
||||
'\n' +
|
||||
'<p>A megnyitott menüket, almenüket és előugró menüket az <strong>Esc</strong> billentyűvel zárhatja be.\n' +
|
||||
'<p>A megnyitott menüket, almenüket és előugró menüket az <strong>Esc</strong> billentyűvel zárhatja be.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Ha a fókusz az aktuális felületi elem „felső” részén van, az <strong>Esc</strong> billentyűvel az egész\n' +
|
||||
' billentyűzetes navigációból kilép.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.hu_HU',
|
|||
'<h1>Menüpont vagy eszköztárgomb aktiválása</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Amikor a kívánt menüelem vagy eszköztárgomb van kijelölve, nyomja meg a <strong>Return</strong>, az <strong>Enter</strong>\n' +
|
||||
' vagy a <strong>Szóköz</strong> billentyűt az adott elem vagy gomb aktiválásához.\n' +
|
||||
' vagy a <strong>Szóköz</strong> billentyűt az adott elem vagy gomb aktiválásához.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigálás a lapokkal nem rendelkező párbeszédablakokban</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.id',
|
|||
'\n' +
|
||||
'<p>Untuk berpindah dari satu bagian UI ke bagian sebelumnya, tekan <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Urutan <strong>Tab</strong> bagian-bagian UI ini adalah:\n' +
|
||||
'<p>Urutan <strong>Tab</strong> bagian-bagian UI ini adalah:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Bilah menu</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.id',
|
|||
'<p>Jika suatu bagian UI tidak ada, bagian tersebut dilewati.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Jika fokus navigasi keyboard ada pada footer, tetapi tidak ada bilah sisi yang terlihat, menekan <strong>Shift+Tab</strong>\n' +
|
||||
' akan memindahkan fokus ke grup bilah alat pertama, bukan yang terakhir.\n' +
|
||||
' akan memindahkan fokus ke grup bilah alat pertama, bukan yang terakhir.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Berpindah di dalam bagian-bagian UI</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.id',
|
|||
' <li>berpindah-pindah antar-item di dalam alur elemen footer.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Tombol panah <strong>Bawah</strong> dan <strong>Atas</strong> untuk\n' +
|
||||
'<p>Tombol panah <strong>Bawah</strong> dan <strong>Atas</strong> untuk</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>berpindah-pindah antar-item menu di dalam menu.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.id',
|
|||
'\n' +
|
||||
'<p>Tombol <strong>Panah</strong> hanya bergerak di dalam bagian UI yang difokuskan.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Untuk menutup menu, sub-menu, atau menu pop-up yang terbuka, tekan tombol <strong>Esc</strong>.\n' +
|
||||
'<p>Untuk menutup menu, sub-menu, atau menu pop-up yang terbuka, tekan tombol <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Jika fokus sedang berada di ‘atas’ bagian UI tertentu, menekan tombol <strong>Esc</strong> juga dapat mengeluarkan fokus\n' +
|
||||
' dari seluruh navigasi keyboard.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.id',
|
|||
'<h1>Menjalankan item menu atau tombol bilah alat</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Jika item menu atau tombol bilah alat yang diinginkan tersorot, tekan <strong>Return</strong>, <strong>Enter</strong>,\n' +
|
||||
' atau <strong>Spasi</strong> untuk menjalankan item.\n' +
|
||||
' atau <strong>Spasi</strong> untuk menjalankan item.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Berpindah dalam dialog tanpa tab</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.it',
|
|||
'\n' +
|
||||
"<p>Per passare da una sezione dell'interfaccia utente alla precedente, premere <strong>MAIUSC+TAB</strong>.</p>\n" +
|
||||
'\n' +
|
||||
"<p>L'ordine di <strong>tabulazione</strong> di queste sezioni dell'interfaccia utente è:\n" +
|
||||
"<p>L'ordine di <strong>tabulazione</strong> di queste sezioni dell'interfaccia utente è:</p>\n" +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Barra dei menu</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.it',
|
|||
"<p>Se una sezione dell'interfaccia utente non è presente, viene saltata.</p>\n" +
|
||||
'\n' +
|
||||
'<p>Se il piè di pagina ha lo stato attivo per la navigazione tramite tastiera e non è presente alcuna barra laterale visibile, premendo <strong>MAIUSC+TAB</strong>\n' +
|
||||
" si sposta lo stato attivo sul primo gruppo di barre degli strumenti, non sull'ultimo.\n" +
|
||||
" si sposta lo stato attivo sul primo gruppo di barre degli strumenti, non sull'ultimo.</p>\n" +
|
||||
'\n' +
|
||||
"<h1>Navigare all'interno delle sezioni dell'interfaccia utente</h1>\n" +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.it',
|
|||
" <li>consentono di spostarsi tra le voci nel percorso dell'elemento del piè di pagina.</li>\n" +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>I tasti freccia <strong>Giù</strong> e <strong>Su</strong>\n' +
|
||||
'<p>I tasti freccia <strong>Giù</strong> e <strong>Su</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>consentono di spostarsi tra le voci di un menu.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.it',
|
|||
'\n' +
|
||||
"<p>I tasti <strong>freccia</strong> consentono di spostarsi all'interno della sezione dell'interfaccia utente con stato attivo.</p>\n" +
|
||||
'\n' +
|
||||
'<p>Per chiudere un menu aperto, un sottomenu aperto o un menu a comparsa aperto, premere il tasto <strong>ESC</strong>.\n' +
|
||||
'<p>Per chiudere un menu aperto, un sottomenu aperto o un menu a comparsa aperto, premere il tasto <strong>ESC</strong>.</p>\n' +
|
||||
'\n' +
|
||||
"<p>Se lo stato attivo corrente si trova nella parte superiore di una particolare sezione dell'interfaccia utente, premendo il tasto <strong>ESC</strong> si esce\n" +
|
||||
' completamente dalla navigazione tramite tastiera.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.it',
|
|||
'<h1>Eseguire una voce di menu o un pulsante della barra degli strumenti</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Quando la voce di menu o il pulsante della barra degli strumenti desiderati sono evidenziati, premere il tasto di<strong>ritorno a capo</strong>, il tasto <strong>Invio</strong>\n' +
|
||||
' o la <strong>barra spaziatrice</strong> per eseguirli.\n' +
|
||||
' o la <strong>barra spaziatrice</strong> per eseguirli.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigare nelle finestre di dialogo non a schede</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ja',
|
|||
'\n' +
|
||||
'<p>前の UI セクションに移動するには、<strong>Shift+Tab</strong> を押します。</p>\n' +
|
||||
'\n' +
|
||||
'<p>これらの UI セクションの <strong>Tab</strong> の順序:\n' +
|
||||
'<p>これらの UI セクションの <strong>Tab</strong> の順序:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>メニュー バー</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ja',
|
|||
'<p>UI セクションが存在しない場合は、スキップされます。</p>\n' +
|
||||
'\n' +
|
||||
'<p>フッターにキーボード ナビゲーション フォーカスがあり、表示可能なサイド バーがない場合、<strong>Shift+Tab</strong> を押すと、\n' +
|
||||
' フォーカスが最後ではなく最初のツール バー グループに移動します。\n' +
|
||||
' フォーカスが最後ではなく最初のツール バー グループに移動します。</p>\n' +
|
||||
'\n' +
|
||||
'<h1>UI セクション内の移動</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ja',
|
|||
' <li>フッターの要素パスの項目間で移動します。</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p><strong>下矢印</strong>と<strong>上矢印</strong>のキー\n' +
|
||||
'<p><strong>下矢印</strong>と<strong>上矢印</strong>のキー</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>メニュー内のメニュー項目間で移動します。</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ja',
|
|||
'\n' +
|
||||
'<p><strong>矢印</strong>キーで、フォーカスされた UI セクション内で循環します。</p>\n' +
|
||||
'\n' +
|
||||
'<p>開いたメニュー、開いたサブメニュー、開いたポップアップ メニューを閉じるには、<strong>Esc</strong> キーを押します。\n' +
|
||||
'<p>開いたメニュー、開いたサブメニュー、開いたポップアップ メニューを閉じるには、<strong>Esc</strong> キーを押します。</p>\n' +
|
||||
'\n' +
|
||||
'<p>現在のフォーカスが特定の UI セクションの「一番上」にある場合、<strong>Esc</strong> キーを押すと\n' +
|
||||
' キーボード ナビゲーションも完全に閉じられます。</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ja',
|
|||
'<h1>メニュー項目またはツール バー ボタンの実行</h1>\n' +
|
||||
'\n' +
|
||||
'<p>目的のメニュー項目やツール バー ボタンが強調表示されている場合、<strong>リターン</strong>、<strong>Enter</strong>、\n' +
|
||||
' または<strong>スペース キー</strong>を押して項目を実行します。\n' +
|
||||
' または<strong>スペース キー</strong>を押して項目を実行します。</p>\n' +
|
||||
'\n' +
|
||||
'<h1>タブのないダイアログの移動</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.kk',
|
|||
'\n' +
|
||||
'<p>Бір ПИ бөлімінен алдыңғысына өту үшін <strong>Shift+Tab</strong> пернесін басыңыз.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Осы ПИ бөлімдерінің <strong>Tab</strong> реті:\n' +
|
||||
'<p>Осы ПИ бөлімдерінің <strong>Tab</strong> реті:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Мәзір жолағы</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.kk',
|
|||
'<p>ПИ бөлімі көрсетілмесе, ол өткізіп жіберіледі.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Төменгі деректемеде пернетақта навигациясының фокусы болса және бүйірлік жолақ көрінбесе, <strong>Shift+Tab</strong> тіркесімін басу әрекеті\n' +
|
||||
' фокусты соңғысы емес, бірінші құралдар тақтасы тобына жылжытады.\n' +
|
||||
' фокусты соңғысы емес, бірінші құралдар тақтасы тобына жылжытады.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>ПИ бөлімдерінде навигациялау</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.kk',
|
|||
' <li>төменгі деректеме элементінің жолындағы элементтер арасында жылжыту.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p><strong>Down</strong> (Төмен) және <strong>Up</strong> (Жоғары) көрсеткі пернелері\n' +
|
||||
'<p><strong>Down</strong> (Төмен) және <strong>Up</strong> (Жоғары) көрсеткі пернелері</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>мәзірдегі мәзір элементтері арасында жылжыту.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.kk',
|
|||
'\n' +
|
||||
'<p>Фокусталған ПИ бөліміндегі <strong>Arrow</strong> (Көрсеткі) пернелерінің циклі.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Ашық мәзірді жабу үшін ішкі мәзірді ашып немесе ашылмалы мәзірді ашып, <strong>Esc</strong> пернесін басыңыз.\n' +
|
||||
'<p>Ашық мәзірді жабу үшін ішкі мәзірді ашып немесе ашылмалы мәзірді ашып, <strong>Esc</strong> пернесін басыңыз.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Ағымдағы фокус белгілі бір ПИ бөлімінің «үстінде» болса, <strong>Esc</strong> пернесін басу әрекеті пернетақта\n' +
|
||||
' навигациясын толығымен жабады.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.kk',
|
|||
'<h1>Мәзір элементін немесе құралдар тақтасы түймесін орындау</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Қажетті мәзір элементі немесе құралдар тақтасы түймесі бөлектелген кезде, элементті орындау үшін <strong>Return</strong> (Қайтару), <strong>Enter</strong> (Енгізу)\n' +
|
||||
' немесе <strong>Space bar</strong> (Бос орын) пернесін басыңыз.\n' +
|
||||
' немесе <strong>Space bar</strong> (Бос орын) пернесін басыңыз.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Белгіленбеген диалог терезелерін навигациялау</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ko_KR',
|
|||
'\n' +
|
||||
'<p>한 UI 섹션에서 이전 UI 섹션으로 돌아가려면 <strong>Shift+Tab(시프트+탭)</strong>을 누릅니다.</p>\n' +
|
||||
'\n' +
|
||||
'<p>이 UI 섹션의 <strong>Tab(탭)</strong> 순서는 다음과 같습니다.\n' +
|
||||
'<p>이 UI 섹션의 <strong>Tab(탭)</strong> 순서는 다음과 같습니다.</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>메뉴 바</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ko_KR',
|
|||
'<p>UI 섹션이 없는 경우 건너뛰기합니다.</p>\n' +
|
||||
'\n' +
|
||||
'<p>푸터에 키보드 탐색 포커스가 있고 사이드바는 보이지 않는 경우 <strong>Shift+Tab(시프트+탭)</strong>을 누르면\n' +
|
||||
' 포커스 표시가 마지막이 아닌 첫 번째 도구 모음 그룹으로 이동합니다.\n' +
|
||||
' 포커스 표시가 마지막이 아닌 첫 번째 도구 모음 그룹으로 이동합니다.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>UI 섹션 내 탐색</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ko_KR',
|
|||
' <li>푸터의 요소 경로에서 항목 간에 이동합니다.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p><strong>아래</strong>와 <strong>위</strong> 화살표 키의 용도:\n' +
|
||||
'<p><strong>아래</strong>와 <strong>위</strong> 화살표 키의 용도:</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>메뉴에서 메뉴 항목 사이를 이동합니다.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ko_KR',
|
|||
'\n' +
|
||||
'<p><strong>화살표</strong> 키는 포커스 표시 UI 섹션 내에서 순환됩니다.</p>\n' +
|
||||
'\n' +
|
||||
'<p>열려 있는 메뉴, 열려 있는 하위 메뉴 또는 열려 있는 팝업 메뉴를 닫으려면 <strong>Esc</strong> 키를 누릅니다.\n' +
|
||||
'<p>열려 있는 메뉴, 열려 있는 하위 메뉴 또는 열려 있는 팝업 메뉴를 닫으려면 <strong>Esc</strong> 키를 누릅니다.</p>\n' +
|
||||
'\n' +
|
||||
"<p>현재 포커스 표시가 특정 UI 섹션 '상단'에 있는 경우 이때도 <strong>Esc</strong> 키를 누르면\n" +
|
||||
' 키보드 탐색이 완전히 종료됩니다.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ko_KR',
|
|||
'<h1>메뉴 항목 또는 도구 모음 버튼 실행</h1>\n' +
|
||||
'\n' +
|
||||
'<p>원하는 메뉴 항목 또는 도구 모음 버튼이 강조 표시되어 있을 때 <strong>Return(리턴)</strong>, <strong>Enter(엔터)</strong>,\n' +
|
||||
' 또는 <strong>Space bar(스페이스바)</strong>를 눌러 해당 항목을 실행합니다.\n' +
|
||||
' 또는 <strong>Space bar(스페이스바)</strong>를 눌러 해당 항목을 실행합니다.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>탭이 없는 대화 탐색</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ms',
|
|||
'\n' +
|
||||
'<p>Untuk bergerak dari satu bahagian UI ke yang sebelumnya, tekan <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Tertib <strong>Tab</strong> bahagian UI ini ialah:\n' +
|
||||
'<p>Tertib <strong>Tab</strong> bahagian UI ini ialah:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Bar menu</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ms',
|
|||
'<p>Jika bahagian UI tidak wujud, ia dilangkau.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Jika pengaki mempunyai fokus navigasi papan kekunci dan tiada bar sisi kelihatan, menekan <strong>Shift+Tab</strong>\n' +
|
||||
' akan mengalihkan fokus ke kumpulan bar alat pertama, bukannya yang terakhir.\n' +
|
||||
' akan mengalihkan fokus ke kumpulan bar alat pertama, bukannya yang terakhir.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigasi dalam bahagian UI</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ms',
|
|||
' <li>Laluan elemen dalam pengaki.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Kekunci anak panah <strong>Bawah</strong> dan <strong>Atas</strong>\n' +
|
||||
'<p>Kekunci anak panah <strong>Bawah</strong> dan <strong>Atas</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>bergerak antara item menu dalam menu.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ms',
|
|||
'\n' +
|
||||
'<p>Kekunci <strong>Anak Panah</strong> berkitar dalam bahagian UI difokuskan.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Untuk menutup menu buka, submenu terbuka atau menu timbul terbuka, tekan kekunci <strong>Esc</strong>.\n' +
|
||||
'<p>Untuk menutup menu buka, submenu terbuka atau menu timbul terbuka, tekan kekunci <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
"<p>Jika fokus semasa berada di bahagian 'atas' bahagian UI tertentu, menekan kekunci <strong>Esc</strong> juga akan keluar daripada\n" +
|
||||
' navigasi papan kekunci sepenuhnya.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ms',
|
|||
'<h1>Laksanakan item menu atau butang bar alat</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Apabila item menu atau butang bar alat yang diinginkan diserlahkan, tekan <strong>Return</strong>, <strong>Enter</strong>,\n' +
|
||||
' atau <strong>bar Space</strong> untuk melaksanakan item.\n' +
|
||||
' atau <strong>bar Space</strong> untuk melaksanakan item.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigasi ke dialog tidak bertab</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.nb_NO',
|
|||
'\n' +
|
||||
'<p>Du kan bevege deg fra én grensesnittdel til den forrige ved å trykke på <strong>Shift + tabulatortasten</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Rekkefølgen til <strong>tabulatortasten</strong> gjennom grensesnittdelene er:\n' +
|
||||
'<p>Rekkefølgen til <strong>tabulatortasten</strong> gjennom grensesnittdelene er:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Menylinjen</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.nb_NO',
|
|||
'<p>Hvis en grensesnittdel ikke er til stede, blir den hoppet over.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Hvis tastaturnavigeringen har uthevet bunnteksten og det ikke finnes en synlig sidestolpe, kan du trykke på <strong>Shift + tabulatortasten</strong>\n' +
|
||||
' for å flytte fokuset til den første gruppen på verktøylinjen i stedet for den siste.\n' +
|
||||
' for å flytte fokuset til den første gruppen på verktøylinjen i stedet for den siste.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigere innenfor grensesnittdeler</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.nb_NO',
|
|||
' <li>beveger deg mellom elementer i elementstien i bunnteksten.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p><strong>Ned</strong>- og <strong>opp</strong>-piltastene\n' +
|
||||
'<p><strong>Ned</strong>- og <strong>opp</strong>-piltastene</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>beveger deg mellom menyelementer i en meny.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.nb_NO',
|
|||
'\n' +
|
||||
'<p>Med <strong>piltastene</strong> kan du bevege deg innenfor den uthevede grensesnittdelen.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Du kan lukke en åpen meny, en åpen undermeny eller en åpen hurtigmeny ved å klikke på <strong>Esc</strong>-tasten.\n' +
|
||||
'<p>Du kan lukke en åpen meny, en åpen undermeny eller en åpen hurtigmeny ved å klikke på <strong>Esc</strong>-tasten.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Hvis det øverste nivået i en grensesnittdel er uthevet, kan du ved å trykke på <strong>Esc</strong> også avslutte\n' +
|
||||
' tastaturnavigeringen helt.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.nb_NO',
|
|||
'<h1>Utføre et menyelement eller en knapp på en verktøylinje</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Når det ønskede menyelementet eller verktøylinjeknappen er uthevet, trykker du på <strong>Retur</strong>, <strong>Enter</strong>,\n' +
|
||||
' eller <strong>mellomromstasten</strong> for å utføre elementet.\n' +
|
||||
' eller <strong>mellomromstasten</strong> for å utføre elementet.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigere i dialogbokser uten faner</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.nl',
|
|||
'\n' +
|
||||
'<p>Druk op <strong>Shift+Tab</strong> om naar de vorige UI-sectie te gaan.</p>\n' +
|
||||
'\n' +
|
||||
'<p>De <strong>Tab</strong>-volgorde van deze UI-secties is:\n' +
|
||||
'<p>De <strong>Tab</strong>-volgorde van deze UI-secties is:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Menubalk</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.nl',
|
|||
'<p>Als een UI-sectie niet aanwezig is, wordt deze overgeslagen.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Als de focus van de toetsenbordnavigatie is ingesteld op de voettekst en er geen zichtbare zijbalk is, kun je op <strong>Shift+Tab</strong> drukken\n' +
|
||||
' om de focus naar de eerste werkbalkgroep in plaats van de laatste te verplaatsen.\n' +
|
||||
' om de focus naar de eerste werkbalkgroep in plaats van de laatste te verplaatsen.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigeren binnen UI-secties</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.nl',
|
|||
' <li>wissel je tussen items in het elementenpad in de voettekst.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Met de pijltjestoetsen <strong>Omlaag</strong> en <strong>Omhoog</strong>\n' +
|
||||
'<p>Met de pijltjestoetsen <strong>Omlaag</strong> en <strong>Omhoog</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>wissel je tussen menu-items in een menu.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.nl',
|
|||
'\n' +
|
||||
'<p>Met de <strong>pijltjestoetsen</strong> wissel je binnen de UI-sectie waarop de focus is ingesteld.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Druk op de toets <strong>Esc</strong> om een geopend menu, submenu of pop-upmenu te sluiten.\n' +
|
||||
'<p>Druk op de toets <strong>Esc</strong> om een geopend menu, submenu of pop-upmenu te sluiten.</p>\n' +
|
||||
'\n' +
|
||||
"<p>Als de huidige focus is ingesteld 'bovenaan' een bepaalde UI-sectie, kun je op de toets <strong>Esc</strong> drukken\n" +
|
||||
' om de toetsenbordnavigatie af te sluiten.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.nl',
|
|||
'<h1>Een menu-item of werkbalkknop uitvoeren</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Als het gewenste menu-item of de gewenste werkbalkknop is gemarkeerd, kun je op <strong>Return</strong>, <strong>Enter</strong>\n' +
|
||||
' of de <strong>spatiebalk</strong> drukken om het item uit te voeren.\n' +
|
||||
' of de <strong>spatiebalk</strong> drukken om het item uit te voeren.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigeren in dialoogvensters zonder tabblad</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pl',
|
|||
'\n' +
|
||||
'<p>Aby przenieść się z danej sekcji interfejsu użytkownika do poprzedniej, naciśnij <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Kolejność klawisza <strong>Tab</strong> w takich sekcjach interfejsu użytkownika jest następująca:\n' +
|
||||
'<p>Kolejność klawisza <strong>Tab</strong> w takich sekcjach interfejsu użytkownika jest następująca:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Pasek menu</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pl',
|
|||
'<p>Jeżeli nie ma sekcji interfejsu użytkownika, jest to pomijane.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Jeżeli na sekcji Footer jest ustawiony fokus nawigacji przy użyciu klawiatury i nie ma widocznego paska bocznego, naciśnięcie <strong>Shift+Tab</strong>\n' +
|
||||
' przenosi fokus na pierwszą grupę paska narzędzi, a nie na ostatnią.\n' +
|
||||
' przenosi fokus na pierwszą grupę paska narzędzi, a nie na ostatnią.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Nawigacja wewnątrz sekcji interfejsu użytkownika</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pl',
|
|||
' <li>przenoszenia się pomiędzy elementami w ścieżce elementów w sekcji Footer.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Klawisze strzałek <strong>w dół</strong> i <strong>w górę</strong> służą do\n' +
|
||||
'<p>Klawisze strzałek <strong>w dół</strong> i <strong>w górę</strong> służą do</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>przenoszenia się pomiędzy elementami menu w menu,</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pl',
|
|||
'\n' +
|
||||
'<p>Klawisze <strong>strzałek</strong> służą do przemieszczania się w sekcji interfejsu użytkownika z ustawionym fokusem.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Aby zamknąć otwarte menu, otwarte podmenu lub otwarte menu wyskakujące, naciśnij klawisz <strong>Esc</strong>.\n' +
|
||||
'<p>Aby zamknąć otwarte menu, otwarte podmenu lub otwarte menu wyskakujące, naciśnij klawisz <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Jeżeli fokus jest ustawiony na górze konkretnej sekcji interfejsu użytkownika, naciśnięcie klawisza <strong>Esc</strong> powoduje wyjście\n' +
|
||||
' z nawigacji przy użyciu klawiatury.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pl',
|
|||
'<h1>Wykonanie elementu menu lub przycisku paska narzędzi</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Gdy podświetlony jest żądany element menu lub przycisk paska narzędzi, naciśnij klawisz <strong>Return</strong>, <strong>Enter</strong>\n' +
|
||||
' lub <strong>Spacja</strong>, aby go wykonać.\n' +
|
||||
' lub <strong>Spacja</strong>, aby go wykonać.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Nawigacja po oknie dialogowym bez kart</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_BR',
|
|||
'\n' +
|
||||
'<p>Para ir de uma seção da IU para a anterior, pressione <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>A ordem de <strong>Tab</strong> destas seções da IU é:\n' +
|
||||
'<p>A ordem de <strong>Tab</strong> destas seções da IU é:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Barra de menus</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_BR',
|
|||
'<p>Se não houver uma seção da IU, ela será pulada.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Se o rodapé tiver o foco da navegação pelo teclado e não houver uma barra lateral visível, pressionar <strong>Shift+Tab</strong>\n' +
|
||||
' move o foco para o primeiro grupo da barra de ferramentas, não para o último.\n' +
|
||||
' move o foco para o primeiro grupo da barra de ferramentas, não para o último.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navegar dentro das seções da IU</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_BR',
|
|||
' <li>movem entre itens no caminho do elemento do rodapé.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>As teclas de seta <strong>Abaixo</strong> e <strong>Acima</strong>\n' +
|
||||
'<p>As teclas de seta <strong>Abaixo</strong> e <strong>Acima</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>movem entre itens de menu em um menu.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_BR',
|
|||
'\n' +
|
||||
'<p>As teclas de <strong>Seta</strong> alternam dentre a seção da IU em foco.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Para fechar um menu aberto, um submenu aberto ou um menu suspenso aberto, pressione <strong>Esc</strong>.\n' +
|
||||
'<p>Para fechar um menu aberto, um submenu aberto ou um menu suspenso aberto, pressione <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Se o foco atual estiver no ‘alto’ de determinada seção da IU, pressionar <strong>Esc</strong> também sai\n' +
|
||||
' totalmente da navegação pelo teclado.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_BR',
|
|||
'<h1>Executar um item de menu ou botão da barra de ferramentas</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Com o item de menu ou botão da barra de ferramentas desejado destacado, pressione <strong>Return</strong>, <strong>Enter</strong>,\n' +
|
||||
' ou a <strong>Barra de espaço</strong> para executar o item.\n' +
|
||||
' ou a <strong>Barra de espaço</strong> para executar o item.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navegar por caixas de diálogo sem guias</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_PT',
|
|||
'\n' +
|
||||
'<p>Para se mover de uma secção de IU para a anterior, prima <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>A ordem de <strong>tabulação</strong> destas secções de IU é:\n' +
|
||||
'<p>A ordem de <strong>tabulação</strong> destas secções de IU é:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Barra de menu</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_PT',
|
|||
'<p>Se uma secção de IU não estiver presente, é ignorada.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Se o rodapé tiver foco de navegação com teclado e não existir uma barra lateral visível, premir <strong>Shift+Tab</strong>\n' +
|
||||
' move o foco para o primeiro grupo da barra de ferramentas e não para o último.\n' +
|
||||
' move o foco para o primeiro grupo da barra de ferramentas e não para o último.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navegar nas secções de IU</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_PT',
|
|||
' <li>movem-se entre itens no caminho do elemento do rodapé.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>As teclas de seta <strong>Para cima</strong> e <strong>Para baixo</strong>\n' +
|
||||
'<p>As teclas de seta <strong>Para cima</strong> e <strong>Para baixo</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>movem-se entre itens de menu num menu.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_PT',
|
|||
'\n' +
|
||||
'<p>As teclas de <strong>seta</strong> deslocam-se ciclicamente na secção de IU em foco.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Para fechar um menu aberto, um submenu aberto ou um menu de pop-up aberto, prima a tecla <strong>Esc</strong>.\n' +
|
||||
'<p>Para fechar um menu aberto, um submenu aberto ou um menu de pop-up aberto, prima a tecla <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Se o foco atual estiver no "topo" de determinada secção de IU, premir a tecla <strong>Esc</strong> também fecha\n' +
|
||||
' completamente a navegação com teclado.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.pt_PT',
|
|||
'<h1>Executar um item de menu ou botão da barra de ferramentas</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Quando o item de menu ou o botão da barra de ferramentas pretendido estiver realçado, prima <strong>Retrocesso</strong>, <strong>Enter</strong>\n' +
|
||||
' ou a <strong>Barra de espaço</strong> para executar o item.\n' +
|
||||
' ou a <strong>Barra de espaço</strong> para executar o item.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navegar em diálogos sem separadores</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ro',
|
|||
'\n' +
|
||||
'<p>Pentru a trece de la o secțiune a interfeței cu utilizatorul la cea anterioară, apăsați <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Ordinea cu <strong>Tab</strong> a acestor secțiuni ale interfeței cu utilizatorul este următoarea:\n' +
|
||||
'<p>Ordinea cu <strong>Tab</strong> a acestor secțiuni ale interfeței cu utilizatorul este următoarea:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Bara de meniu</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ro',
|
|||
'<p>În cazul în care o secțiune a interfeței cu utilizatorul nu este prezentă, aceasta este omisă.</p>\n' +
|
||||
'\n' +
|
||||
'<p>În cazul în care subsolul are focalizarea navigației asupra tastaturii și nu există o bară laterală vizibilă, apăsarea butonului <strong>Shift+Tab</strong>\n' +
|
||||
' mută focalizarea pe primul grup de bare de instrumente, nu pe ultimul.\n' +
|
||||
' mută focalizarea pe primul grup de bare de instrumente, nu pe ultimul.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigați în secțiunile interfeței cu utilizatorul</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ro',
|
|||
' <li>navighează între elementele din calea elementelor subsolului.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Tastele cu săgeți în <strong>sus</strong> și în <strong>jos</strong>\n' +
|
||||
'<p>Tastele cu săgeți în <strong>sus</strong> și în <strong>jos</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>navighează între elementele de meniu dintr-un meniu.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ro',
|
|||
'\n' +
|
||||
'<p>Tastele cu <strong>săgeți</strong> navighează în cadrul secțiunii interfeței cu utilizatorul asupra căreia se focalizează.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Pentru a închide un meniu deschis, un sub-meniu deschis sau un meniu pop-up deschis, apăsați tasta <strong>Esc</strong>.\n' +
|
||||
'<p>Pentru a închide un meniu deschis, un sub-meniu deschis sau un meniu pop-up deschis, apăsați tasta <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Dacă focalizarea curentă este asupra „părții superioare” a unei anumite secțiuni a interfeței cu utilizatorul, prin apăsarea tastei <strong>Esc</strong> se iese, de asemenea,\n' +
|
||||
' în întregime din navigarea de la tastatură.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ro',
|
|||
'<h1>Executarea unui element de meniu sau a unui buton din bara de instrumente</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Atunci când elementul de meniu dorit sau butonul dorit din bara de instrumente este evidențiat, apăsați <strong>Return</strong>, <strong>Enter</strong>,\n' +
|
||||
' sau <strong>bara de spațiu</strong> pentru a executa elementul.\n' +
|
||||
' sau <strong>bara de spațiu</strong> pentru a executa elementul.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigarea de dialoguri fără file</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ru',
|
|||
'\n' +
|
||||
'<p>Чтобы перейти из текущего раздела интерфейса в предыдущий, нажмите <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p><strong>Вкладки</strong> разделов интерфейса расположены в следующем порядке:\n' +
|
||||
'<p><strong>Вкладки</strong> разделов интерфейса расположены в следующем порядке:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Панель меню</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ru',
|
|||
'<p>Если раздел интерфейса отсутствует, он пропускается.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Если при управлении с клавиатуры фокус находится на нижнем колонтитуле, а видимая боковая панель отсутствует, то при нажатии сочетания клавиш <strong>Shift+Tab</strong>\n' +
|
||||
' фокус переносится на первую группу панели инструментов, а не на последнюю.\n' +
|
||||
' фокус переносится на первую группу панели инструментов, а не на последнюю.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Переход между элементами внутри разделов пользовательского интерфейса</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ru',
|
|||
' <li>перемещаться между элементами в пути элементов нижнего колонтитула.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Клавиши со стрелками <strong>вниз</strong> и <strong>вверх</strong> позволяют\n' +
|
||||
'<p>Клавиши со стрелками <strong>вниз</strong> и <strong>вверх</strong> позволяют</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>перемещаться между элементами одного меню.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ru',
|
|||
'\n' +
|
||||
'<p>При использовании <strong>клавиш со стрелками</strong> вы будете циклически перемещаться по элементам в пределах выбранного раздела интерфейса.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Чтобы закрыть открытое меню, его раздел или всплывающее меню, нажмите клавишу <strong>Esc</strong>.\n' +
|
||||
'<p>Чтобы закрыть открытое меню, его раздел или всплывающее меню, нажмите клавишу <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Если фокус находится наверху какого-либо раздела интерфейса, нажатие клавиши <strong>Esc</strong> также приведет\n' +
|
||||
' к выходу из режима управления с помощью клавиатуры.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.ru',
|
|||
'<h1>Использование элемента меню или кнопки на панели инструментов</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Когда элемент меню или кнопка панели инструментов будут выделены, нажмите <strong>Return</strong>, <strong>Enter</strong>\n' +
|
||||
' или <strong>Space</strong>, чтобы их активировать.\n' +
|
||||
' или <strong>Space</strong>, чтобы их активировать.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Управление в диалоговом окне без вкладок</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sk',
|
|||
'\n' +
|
||||
'<p>Ak sa chcete posunúť z jednej časti používateľského rozhrania do predchádzajúcej, stlačte tlačidlá <strong>Shift + Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Poradie prepínania medzi týmito časťami používateľského rozhrania pri stláčaní tlačidla <strong>Tab</strong>:\n' +
|
||||
'<p>Poradie prepínania medzi týmito časťami používateľského rozhrania pri stláčaní tlačidla <strong>Tab</strong>:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Panel s ponukou</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sk',
|
|||
'<p>Ak nejaká časť používateľského rozhrania nie je prítomná, preskočí sa.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Ak je pätička vybratá na navigáciu pomocou klávesnice a nie je viditeľný bočný panel, stlačením klávesov <strong>Shift+Tab</strong>\n' +
|
||||
' prejdete na prvú skupinu panela nástrojov, nie na poslednú.\n' +
|
||||
' prejdete na prvú skupinu panela nástrojov, nie na poslednú.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigácia v rámci častí používateľského rozhrania</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sk',
|
|||
' <li>umožňujú presun medzi položkami cesty prvku v pätičke.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Klávesy so šípkami <strong>dole</strong> a <strong>hore</strong>\n' +
|
||||
'<p>Klávesy so šípkami <strong>dole</strong> a <strong>hore</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>umožňujú presun medzi položkami ponuky,</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sk',
|
|||
'\n' +
|
||||
'<p>Klávesy so <strong>šípkami</strong> vykonávajú prepínanie v rámci vybranej časti používateľského rozhrania.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Ak chcete zatvoriť otvorenú ponuku, otvorenú podponuku alebo otvorenú kontextovú ponuku, stlačte kláves <strong>Esc</strong>.\n' +
|
||||
'<p>Ak chcete zatvoriť otvorenú ponuku, otvorenú podponuku alebo otvorenú kontextovú ponuku, stlačte kláves <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Ak je aktuálne vybratá horná časť konkrétneho používateľského rozhrania, stlačením klávesu <strong>Esc</strong> úplne ukončíte tiež\n' +
|
||||
' navigáciu pomocou klávesnice.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sk',
|
|||
'<h1>Vykonanie príkazu položky ponuky alebo tlačidla panela nástrojov</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Keď je zvýraznená požadovaná položka ponuky alebo tlačidlo panela nástrojov, stlačením klávesov <strong>Return</strong>, <strong>Enter</strong>\n' +
|
||||
' alebo <strong>medzerníka</strong> vykonáte príslušný príkaz položky.\n' +
|
||||
' alebo <strong>medzerníka</strong> vykonáte príslušný príkaz položky.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigácia v dialógových oknách bez záložiek</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sl_SI',
|
|||
'\n' +
|
||||
'<p>Če se želite pomakniti z enega dela uporabniškega vmesnika na prejšnjega, pritisnite <strong>shift + tabulatorko</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Zaporedje teh razdelkov uporabniškega vmesnika, ko pritiskate <strong>tabulatorko</strong>, je:\n' +
|
||||
'<p>Zaporedje teh razdelkov uporabniškega vmesnika, ko pritiskate <strong>tabulatorko</strong>, je:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Menijska vrstica</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sl_SI',
|
|||
'<p>Če razdelek uporabniškega vmesnika ni prisoten, je preskočen.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Če ima noga fokus za krmarjenje s tipkovnico in ni vidne stranske vrstice, s pritiskom na <strong>shift + tabulatorko</strong>\n' +
|
||||
' fokus premaknete na prvo skupino orodne vrstice, ne zadnjo.\n' +
|
||||
' fokus premaknete na prvo skupino orodne vrstice, ne zadnjo</p>.\n' +
|
||||
'\n' +
|
||||
'<h1>Krmarjenje v razdelkih uporabniškega vmesnika</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sl_SI',
|
|||
' <li>omogočata premikanje med elementi na poti do elementov noge.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p><strong>Spodnja</strong> in <strong>zgornja</strong> puščična tipka\n' +
|
||||
'<p><strong>Spodnja</strong> in <strong>zgornja</strong> puščična tipka</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>omogočata premikanje med elementi menija.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sl_SI',
|
|||
'\n' +
|
||||
'<p><strong>Puščične</strong> tipke omogočajo kroženje znotraj razdelka uporabniškega vmesnika, na katerem je fokus.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Če želite zapreti odprt meni, podmeni ali pojavni meni, pritisnite tipko <strong>Esc</strong>.\n' +
|
||||
'<p>Če želite zapreti odprt meni, podmeni ali pojavni meni, pritisnite tipko <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Če je trenutni fokus na »vrhu« določenega razdelka uporabniškega vmesnika, s pritiskom tipke <strong>Esc</strong> zaprete\n' +
|
||||
' tudi celotno krmarjenje s tipkovnico.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sl_SI',
|
|||
'<h1>Izvajanje menijskega elementa ali gumba orodne vrstice</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Ko je označen želeni menijski element ali orodja vrstica, pritisnite <strong>vračalko</strong>, <strong>Enter</strong>\n' +
|
||||
' ali <strong>preslednico</strong>, da izvedete element.\n' +
|
||||
' ali <strong>preslednico</strong>, da izvedete element.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Krmarjenje po pogovornih oknih brez zavihkov</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sv_SE',
|
|||
'\n' +
|
||||
'<p>Flytta från ett UI-avsnitt till det föregående genom att trycka på <strong>Skift+Tabb</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p><strong>Tabb</strong>-ordningen för dessa UI-avsnitt är:\n' +
|
||||
'<p><strong>Tabb</strong>-ordningen för dessa UI-avsnitt är:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Menyrad</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sv_SE',
|
|||
'<p>Om ett UI-avsnitt inte finns hoppas det över.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Om sidfoten har fokus på tangentbordsnavigering, och det inte finns någon synlig sidoruta, flyttas fokus till den första verktygsradsgruppen\n' +
|
||||
' när du trycker på <strong>Skift+Tabb</strong>, inte till den sista.\n' +
|
||||
' när du trycker på <strong>Skift+Tabb</strong>, inte till den sista.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigera i UI-avsnitt</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sv_SE',
|
|||
' <li>flytta mellan objekt i sidfotens elementsökväg.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p><strong>Nedpil</strong> och <strong>uppil</strong>\n' +
|
||||
'<p><strong>Nedpil</strong> och <strong>uppil</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>flytta mellan menyalternativ på en meny.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sv_SE',
|
|||
'\n' +
|
||||
'<p><strong>Piltangenterna</strong> cirkulerar inom det fokuserade UI-avsnittet.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Tryck på <strong>Esc</strong>-tangenten om du vill stänga en öppen meny, undermeny eller popup-meny.\n' +
|
||||
'<p>Tryck på <strong>Esc</strong>-tangenten om du vill stänga en öppen meny, undermeny eller popup-meny.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Om det aktuella fokuset är högst upp i ett UI-avsnitt avlutas även tangentbordsnavigeringen helt när\n' +
|
||||
' du trycker på <strong>Esc</strong>-tangenten.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.sv_SE',
|
|||
'<h1>Köra ett menyalternativ eller en verktygfältsknapp</h1>\n' +
|
||||
'\n' +
|
||||
'<p>När menyalternativet eller verktygsradsknappen är markerad trycker du på <strong>Retur</strong>, <strong>Enter</strong>\n' +
|
||||
' eller <strong>blanksteg</strong> för att köra alternativet.\n' +
|
||||
' eller <strong>blanksteg</strong> för att köra alternativet.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Navigera i dialogrutor utan flikar</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.th_TH',
|
|||
'\n' +
|
||||
'<p>ในการย้ายจากส่วน UI หนึ่งไปยังส่วนก่อนหน้า ให้กด <strong>Shift+Tab</strong></p>\n' +
|
||||
'\n' +
|
||||
'<p>ลำดับ<strong>แท็บ</strong>ของส่วนต่างๆ ของ UI คือ:\n' +
|
||||
'<p>ลำดับ<strong>แท็บ</strong>ของส่วนต่างๆ ของ UI คือ:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>แถบเมนู</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.th_TH',
|
|||
'<p>หากส่วน UI ไม่ปรากฏ แสดงว่าถูกข้ามไป</p>\n' +
|
||||
'\n' +
|
||||
'<p>หากส่วนท้ายมีการโฟกัสการนำทางแป้นพิมพ์และไม่มีแถบข้างปรากฏ การกด <strong>Shift+Tab</strong>\n' +
|
||||
' จะย้ายการโฟกัสไปที่กลุ่มแถบเครื่องมือแรก ไม่ใช่สุดท้าย\n' +
|
||||
' จะย้ายการโฟกัสไปที่กลุ่มแถบเครื่องมือแรก ไม่ใช่สุดท้าย</p>\n' +
|
||||
'\n' +
|
||||
'<h1>การนำทางภายในส่วนต่างๆ ของ UI</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.th_TH',
|
|||
' <li>ย้ายไปมาระหว่างรายการต่างๆ ในพาธองค์ประกอบของส่วนท้าย</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>ปุ่มลูกศร<strong>ลง</strong>และ<strong>ขึ้น</strong>\n' +
|
||||
'<p>ปุ่มลูกศร<strong>ลง</strong>และ<strong>ขึ้น</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>ย้ายไปมาระหว่างรายการเมนูต่างๆ ในเมนู</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.th_TH',
|
|||
'\n' +
|
||||
'<p>ปุ่ม<strong>ลูกศร</strong>จะเลื่อนไปมาภายในส่วน UI ที่โฟกัส</p>\n' +
|
||||
'\n' +
|
||||
'<p>ในการปิดเมนูที่เปิดอยู่ เมนูย่อยที่เปิดอยู่ หรือเมนูป๊อบอัพที่เปิดอยู่ ให้กดปุ่ม <strong>Esc</strong>\n' +
|
||||
'<p>ในการปิดเมนูที่เปิดอยู่ เมนูย่อยที่เปิดอยู่ หรือเมนูป๊อบอัพที่เปิดอยู่ ให้กดปุ่ม <strong>Esc</strong></p>\n' +
|
||||
'\n' +
|
||||
'<p>หากโฟกัสปัจจุบันอยู่ที่ ‘ด้านบนสุด’ ของส่วน UI เฉพาะ การกดปุ่ม <strong>Esc</strong> จะทำให้ออกจาก\n' +
|
||||
' การนำทางด้วยแป้นพิมพ์ทั้งหมดเช่นกัน</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.th_TH',
|
|||
'<h1>การดำเนินการรายการเมนูหรือปุ่มในแถบเครื่องมือ</h1>\n' +
|
||||
'\n' +
|
||||
'<p>เมื่อไฮไลต์รายการเมนูหรือปุ่มในแถบเครื่องมือที่ต้องการ ให้กด <strong>Return</strong>, <strong>Enter</strong>\n' +
|
||||
' หรือ <strong>Space bar</strong> เพื่อดำเนินการรายการดังกล่าว\n' +
|
||||
' หรือ <strong>Space bar</strong> เพื่อดำเนินการรายการดังกล่าว</p>\n' +
|
||||
'\n' +
|
||||
'<h1>การนำทางสำหรับกล่องโต้ตอบที่ไม่อยู่ในแท็บ</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.tr',
|
|||
'\n' +
|
||||
'<p>Önceki kullanıcı arabirimi bölümüne gitmek için <strong>Shift+Sekme</strong> tuşlarına basın.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Bu kullanıcı arabirimi bölümlerinin <strong>Sekme</strong> sırası:\n' +
|
||||
'<p>Bu kullanıcı arabirimi bölümlerinin <strong>Sekme</strong> sırası:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Menü çubuğu</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.tr',
|
|||
'<p>Kullanıcı arabirimi bölümü yoksa atlanır.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Alt bilgide klavyeyle gezinti odağı yoksa ve görünür bir kenar çubuğu mevcut değilse <strong>Shift+Sekme</strong> tuşlarına basıldığında\n' +
|
||||
' odak son araç çubuğu yerine ilk araç çubuğu grubuna taşınır.\n' +
|
||||
' odak son araç çubuğu yerine ilk araç çubuğu grubuna taşınır.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Kullanıcı arabirimi bölümleri içinde gezinme</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.tr',
|
|||
' <li>alt bilginin öğe yolundaki öğeler arasında hareket eder.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p><strong>Aşağı</strong> ve <strong>Yukarı</strong> ok tuşları\n' +
|
||||
'<p><strong>Aşağı</strong> ve <strong>Yukarı</strong> ok tuşları</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>menüdeki menü öğeleri arasında hareket eder.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.tr',
|
|||
'\n' +
|
||||
'<p><strong>Ok</strong> tuşları, odaklanılan kullanıcı arabirimi bölümü içinde döngüsel olarak hareket eder.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Açık bir menüyü, açık bir alt menüyü veya açık bir açılır menüyü kapatmak için <strong>Esc</strong> tuşuna basın.\n' +
|
||||
'<p>Açık bir menüyü, açık bir alt menüyü veya açık bir açılır menüyü kapatmak için <strong>Esc</strong> tuşuna basın.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Geçerli odak belirli bir kullanıcı arabirimi bölümünün "üst" kısmındaysa <strong>Esc</strong> tuşuna basıldığında\n' +
|
||||
' klavyeyle gezintiden de tamamen çıkılır.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.tr',
|
|||
'<h1>Menü öğesini veya araç çubuğu düğmesini yürütme</h1>\n' +
|
||||
'\n' +
|
||||
'<p>İstediğiniz menü öğesi veya araç çubuğu düğmesi vurgulandığında <strong>Return</strong>, <strong>Enter</strong>\n' +
|
||||
' veya <strong>Ara çubuğu</strong> tuşuna basın.\n' +
|
||||
' veya <strong>Ara çubuğu</strong> tuşuna basın.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Sekme bulunmayan iletişim kutularında gezinme</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.uk',
|
|||
'\n' +
|
||||
'<p>Щоб перейти з одного розділу інтерфейсу користувача до попереднього розділу, натисніть сполучення клавіш <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Порядок <strong>Вкладок</strong> цих розділів інтерфейсу користувача такий:\n' +
|
||||
'<p>Порядок <strong>Вкладок</strong> цих розділів інтерфейсу користувача такий:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Рядок меню</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.uk',
|
|||
'<p>Якщо розділ інтерфейсу користувача відсутній, він пропускається.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Якщо фокус навігації клавіатури знаходиться на розділі "Нижній колонтитул", але користувач не бачить видиму бічну панель, натисніть <strong>Shift+Tab</strong>,\n' +
|
||||
' щоб перемістити фокус на першу групу панелі інструментів, а не на останню.\n' +
|
||||
' щоб перемістити фокус на першу групу панелі інструментів, а не на останню.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Навігація в межах розділів інтерфейсу користувача</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.uk',
|
|||
' <li>переміщують між елементами в шляху до елементів у розділі "Нижній колонтитул".</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Клавіші зі стрілками <strong>Вниз</strong> і <strong>Вгору</strong>\n' +
|
||||
'<p>Клавіші зі стрілками <strong>Вниз</strong> і <strong>Вгору</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>переміщують між елементами меню в меню.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.uk',
|
|||
'\n' +
|
||||
'<p>Клавіші <strong>зі стрілками</strong> переміщують фокус циклічно в межах розділу інтерфейсу користувача, на якому знаходиться фокус.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Щоб закрити відкрите меню, відкрите вкладене меню або відкрите спливаюче меню, натисніть клавішу <strong>Esc</strong>.\n' +
|
||||
'<p>Щоб закрити відкрите меню, відкрите вкладене меню або відкрите спливаюче меню, натисніть клавішу <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Якщо поточний фокус знаходиться на верхньому рівні певного розділу інтерфейсу користувача, натискання клавіші <strong>Esc</strong> також виконує вихід\n' +
|
||||
' з навігації за допомогою клавіатури повністю.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.uk',
|
|||
'<h1>Виконання елементу меню або кнопки панелі інструментів</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Коли потрібний елемент меню або кнопку панелі інструментів виділено, натисніть клавіші <strong>Return</strong>, <strong>Enter</strong>,\n' +
|
||||
' або <strong>Пробіл</strong>, щоб виконати цей елемент.\n' +
|
||||
' або <strong>Пробіл</strong>, щоб виконати цей елемент.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Навігація по діалоговим вікнам без вкладок</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.vi',
|
|||
'\n' +
|
||||
'<p>Để di chuyển từ một phần UI về phần trước đó, ấn <strong>Shift+Tab</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Thứ tự <strong>Tab</strong> của các phần UI này như sau:\n' +
|
||||
'<p>Thứ tự <strong>Tab</strong> của các phần UI này như sau:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>Thanh menu</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.vi',
|
|||
'<p>Nếu người dùng không thấy một phần UI, thì có nghĩa phần đó bị bỏ qua.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Nếu ở chân trang có tính năng tập trung điều hướng bàn phím, mà không có thanh bên nào hiện hữu, thao tác ấn <strong>Shift+Tab</strong>\n' +
|
||||
' sẽ chuyển hướng tập trung vào nhóm thanh công cụ đầu tiên, không phải cuối cùng.\n' +
|
||||
' sẽ chuyển hướng tập trung vào nhóm thanh công cụ đầu tiên, không phải cuối cùng.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Di chuyển qua lại trong các phần UI</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.vi',
|
|||
' <li>di chuyển giữa các mục trong đường dẫn phần tử của chân trang.</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p>Các phím mũi tên <strong>Hướng xuống</strong> và <strong>Hướng lên</strong>\n' +
|
||||
'<p>Các phím mũi tên <strong>Hướng xuống</strong> và <strong>Hướng lên</strong></p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>di chuyển giữa các mục menu trong menu.</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.vi',
|
|||
'\n' +
|
||||
'<p>Các phím <strong>mũi tên</strong> xoay vòng trong một phần UI tập trung.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Để đóng một menu mở, một menu phụ đang mở, hoặc một menu dạng bật lên đang mở, hãy ấn phím <strong>Esc</strong>.\n' +
|
||||
'<p>Để đóng một menu mở, một menu phụ đang mở, hoặc một menu dạng bật lên đang mở, hãy ấn phím <strong>Esc</strong>.</p>\n' +
|
||||
'\n' +
|
||||
'<p>Nếu trọng tâm hiện tại là ở phần “đầu” của một phần UI cụ thể, thao tác ấn phím <strong>Esc</strong> cũng sẽ thoát\n' +
|
||||
' toàn bộ phần điều hướng bàn phím.</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.vi',
|
|||
'<h1>Thực hiện chức năng của một mục menu hoặc nút thanh công cụ</h1>\n' +
|
||||
'\n' +
|
||||
'<p>Khi mục menu hoặc nút thanh công cụ muốn dùng được tô sáng, hãy ấn <strong>Return</strong>, <strong>Enter</strong>,\n' +
|
||||
' hoặc <strong>Phím cách</strong> để thực hiện chức năng mục đó.\n' +
|
||||
' hoặc <strong>Phím cách</strong> để thực hiện chức năng mục đó.</p>\n' +
|
||||
'\n' +
|
||||
'<h1>Điều hướng giữa các hộp thoại không có nhiều tab</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_CN',
|
|||
'\n' +
|
||||
'<p>要从一个 UI 部分移至上一个,请按 <strong>Shift+Tab</strong>。</p>\n' +
|
||||
'\n' +
|
||||
'<p>这些 UI 部分的 <strong>Tab</strong> 顺序为:\n' +
|
||||
'<p>这些 UI 部分的 <strong>Tab</strong> 顺序为:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>菜单栏</li>\n' +
|
||||
|
|
@ -37,7 +37,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_CN',
|
|||
'\n' +
|
||||
'<p>如果不存在某个 UI 部分,则跳过它。</p>\n' +
|
||||
'\n' +
|
||||
'<p>如果键盘导航焦点在页脚,并且没有可见的边栏,则按 <strong>Shift+Tab</strong> 将焦点移至第一个工具栏组而非最后一个。\n' +
|
||||
'<p>如果键盘导航焦点在页脚,并且没有可见的边栏,则按 <strong>Shift+Tab</strong> 将焦点移至第一个工具栏组而非最后一个。</p>\n' +
|
||||
'\n' +
|
||||
'<h1>在 UI 部分内导航</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -52,7 +52,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_CN',
|
|||
' <li>在页脚的元素路径中的各项之间移动。</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p><strong>下</strong>和<strong>上</strong>箭头键\n' +
|
||||
'<p><strong>下</strong>和<strong>上</strong>箭头键</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>在菜单中的菜单项之间移动。</li>\n' +
|
||||
|
|
@ -61,13 +61,13 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_CN',
|
|||
'\n' +
|
||||
'<p><strong>箭头</strong>键在具有焦点的 UI 部分内循环。</p>\n' +
|
||||
'\n' +
|
||||
'<p>要关闭打开的菜单、打开的子菜单或打开的弹出菜单,请按 <strong>Esc</strong> 键。\n' +
|
||||
'<p>要关闭打开的菜单、打开的子菜单或打开的弹出菜单,请按 <strong>Esc</strong> 键。</p>\n' +
|
||||
'\n' +
|
||||
'<p>如果当前的焦点在特定 UI 部分的“顶部”,则按 <strong>Esc</strong> 键还将完全退出键盘导航。</p>\n' +
|
||||
'\n' +
|
||||
'<h1>执行菜单项或工具栏按钮</h1>\n' +
|
||||
'\n' +
|
||||
'<p>当突出显示所需的菜单项或工具栏按钮时,按 <strong>Return</strong>、<strong>Enter</strong> 或<strong>空格</strong>以执行该项。\n' +
|
||||
'<p>当突出显示所需的菜单项或工具栏按钮时,按 <strong>Return</strong>、<strong>Enter</strong> 或<strong>空格</strong>以执行该项。</p>\n' +
|
||||
'\n' +
|
||||
'<h1>在非标签页式对话框中导航</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_TW',
|
|||
'\n' +
|
||||
'<p>從 UI 區段移回上一個,請按 <strong>Shift+Tab</strong>。</p>\n' +
|
||||
'\n' +
|
||||
'<p>這些 UI 區段的 <strong>Tab</strong> 順序如下:\n' +
|
||||
'<p>這些 UI 區段的 <strong>Tab</strong> 順序如下:</p>\n' +
|
||||
'\n' +
|
||||
'<ol>\n' +
|
||||
' <li>功能表列</li>\n' +
|
||||
|
|
@ -39,7 +39,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_TW',
|
|||
'<p>如果 UI 區段未顯示,表示已略過該區段。</p>\n' +
|
||||
'\n' +
|
||||
'<p>如果鍵盤瀏覽跳至頁尾,但沒有顯示側邊欄,則按下 <strong>Shift+Tab</strong>\n' +
|
||||
' 會跳至第一個工具列群組,而不是最後一個。\n' +
|
||||
' 會跳至第一個工具列群組,而不是最後一個。</p>\n' +
|
||||
'\n' +
|
||||
'<h1>在 UI 區段之內瀏覽</h1>\n' +
|
||||
'\n' +
|
||||
|
|
@ -54,7 +54,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_TW',
|
|||
' <li>在頁尾的元素路徑中項目之間移動。</li>\n' +
|
||||
'</ul>\n' +
|
||||
'\n' +
|
||||
'<p><strong>向下</strong>和<strong>向上</strong>方向鍵\n' +
|
||||
'<p><strong>向下</strong>和<strong>向上</strong>方向鍵</p>\n' +
|
||||
'\n' +
|
||||
'<ul>\n' +
|
||||
' <li>在功能表中的功能表項目之間移動。</li>\n' +
|
||||
|
|
@ -63,7 +63,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_TW',
|
|||
'\n' +
|
||||
'<p><strong>方向</strong>鍵會在所跳至 UI 區段之內循環。</p>\n' +
|
||||
'\n' +
|
||||
'<p>若要關閉已開啟的功能表、已開啟的子功能表,或已開啟的快顯功能表,請按 <strong>Esc</strong> 鍵。\n' +
|
||||
'<p>若要關閉已開啟的功能表、已開啟的子功能表,或已開啟的快顯功能表,請按 <strong>Esc</strong> 鍵。</p>\n' +
|
||||
'\n' +
|
||||
'<p>如果目前已跳至特定 UI 區段的「頂端」,則按 <strong>Esc</strong> 鍵也會結束\n' +
|
||||
' 整個鍵盤瀏覽。</p>\n' +
|
||||
|
|
@ -71,7 +71,7 @@ tinymce.Resource.add('tinymce.html-i18n.help-keynav.zh_TW',
|
|||
'<h1>執行功能表列項目或工具列按鈕</h1>\n' +
|
||||
'\n' +
|
||||
'<p>當想要的功能表項目或工具列按鈕已反白顯示時,按 <strong>Return</strong>、<strong>Enter</strong>、\n' +
|
||||
' 或<strong>空白鍵</strong>即可執行該項目。\n' +
|
||||
' 或<strong>空白鍵</strong>即可執行該項目。</p>\n' +
|
||||
'\n' +
|
||||
'<h1>瀏覽非索引標籤式對話方塊</h1>\n' +
|
||||
'\n' +
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(s=r=e,(o=String).prototype.isPrototypeOf(s)||(null===(n=r.constructor)||void 0===n?void 0:n.name)===o.name)?"string":t;var s,r,o,n})(t)===e,s=t("string"),r=t("object"),o=t("array"),n=("function",e=>"function"==typeof e);var c=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),i=tinymce.util.Tools.resolve("tinymce.EditorManager"),l=tinymce.util.Tools.resolve("tinymce.Env"),a=tinymce.util.Tools.resolve("tinymce.util.Tools");const p=e=>t=>t.options.get(e),u=p("importcss_merge_classes"),m=p("importcss_exclusive"),f=p("importcss_selector_converter"),y=p("importcss_selector_filter"),d=p("importcss_groups"),h=p("importcss_append"),_=p("importcss_file_filter"),g=p("skin"),v=p("skin_url"),b=Array.prototype.push,x=/^\.(?:ephox|tiny-pageembed|mce)(?:[.-]+\w+)+$/,T=e=>s(e)?t=>-1!==t.indexOf(e):e instanceof RegExp?t=>e.test(t):e,S=(e,t)=>{let s={};const r=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(t);if(!r)return;const o=r[1],n=r[2].substr(1).split(".").join(" "),c=a.makeMap("a,img");return r[1]?(s={title:t},e.schema.getTextBlockElements()[o]?s.block=o:e.schema.getBlockElements()[o]||c[o.toLowerCase()]?s.selector=o:s.inline=o):r[2]&&(s={inline:"span",title:t.substr(1),classes:n}),u(e)?s.classes=n:s.attributes={class:n},s},k=(e,t)=>null===t||m(e),w=e=>{e.on("init",(()=>{const t=(()=>{const e=[],t=[],s={};return{addItemToGroup:(e,r)=>{s[e]?s[e].push(r):(t.push(e),s[e]=[r])},addItem:t=>{e.push(t)},toFormats:()=>{return(r=t,n=e=>{const t=s[e];return 0===t.length?[]:[{title:e,items:t}]},(e=>{const t=[];for(let s=0,r=e.length;s<r;++s){if(!o(e[s]))throw new Error("Arr.flatten item "+s+" was not an array, input: "+e);b.apply(t,e[s])}return t})(((e,t)=>{const s=e.length,r=new Array(s);for(let o=0;o<s;o++){const s=e[o];r[o]=t(s,o)}return r})(r,n))).concat(e);var r,n}}})(),r={},n=T(y(e)),p=(e=>a.map(e,(e=>a.extend({},e,{original:e,selectors:{},filter:T(e.filter)}))))(d(e)),u=(t,s)=>{if(((e,t,s,r)=>!(k(e,s)?t in r:t in s.selectors))(e,t,s,r)){((e,t,s,r)=>{k(e,s)?r[t]=!0:s.selectors[t]=!0})(e,t,s,r);const o=((e,t,s,r)=>{let o;const n=f(e);return o=r&&r.selector_converter?r.selector_converter:n||(()=>S(e,s)),o.call(t,s,r)})(e,e.plugins.importcss,t,s);if(o){const t=o.name||c.DOM.uniqueId();return e.formatter.register(t,o),{title:o.title,format:t}}}return null};a.each(((e,t,r)=>{const o=[],n={},c=(t,n)=>{let p,u=t.href;if(u=(e=>{const t=l.cacheSuffix;return s(e)&&(e=e.replace("?"+t,"").replace("&"+t,"")),e})(u),u&&(!r||r(u,n))&&!((e,t)=>{const s=g(e);if(s){const r=v(e),o=r?e.documentBaseURI.toAbsolute(r):i.baseURL+"/skins/ui/"+s,n=i.baseURL+"/skins/content/";return t===o+"/content"+(e.inline?".inline":"")+".min.css"||-1!==t.indexOf(n)}return!1})(e,u)){a.each(t.imports,(e=>{c(e,!0)}));try{p=t.cssRules||t.rules}catch(e){}a.each(p,(e=>{e.styleSheet?c(e.styleSheet,!0):e.selectorText&&a.each(e.selectorText.split(","),(e=>{o.push(a.trim(e))}))}))}};a.each(e.contentCSS,(e=>{n[e]=!0})),r||(r=(e,t)=>t||n[e]);try{a.each(t.styleSheets,(e=>{c(e)}))}catch(e){}return o})(e,e.getDoc(),T(_(e))),(e=>{if(!x.test(e)&&(!n||n(e))){const s=((e,t)=>a.grep(e,(e=>!e.filter||e.filter(t))))(p,e);if(s.length>0)a.each(s,(s=>{const r=u(e,s);r&&t.addItemToGroup(s.title,r)}));else{const s=u(e,null);s&&t.addItem(s)}}}));const m=t.toFormats();e.dispatch("addStyleModifications",{items:m,replace:!h(e)})}))};e.add("importcss",(e=>((e=>{const t=e.options.register,o=e=>s(e)||n(e)||r(e);t("importcss_merge_classes",{processor:"boolean",default:!0}),t("importcss_exclusive",{processor:"boolean",default:!0}),t("importcss_selector_converter",{processor:"function"}),t("importcss_selector_filter",{processor:o}),t("importcss_file_filter",{processor:o}),t("importcss_groups",{processor:"object[]"}),t("importcss_append",{processor:"boolean",default:!1})})(e),w(e),(e=>({convertSelectorToFormat:t=>S(e,t)}))(e))))}();
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(s=r=e,(o=String).prototype.isPrototypeOf(s)||(null===(n=r.constructor)||void 0===n?void 0:n.name)===o.name)?"string":t;var s,r,o,n})(t)===e,s=t("string"),r=t("object"),o=t("array"),n=("function",e=>"function"==typeof e);var c=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),i=tinymce.util.Tools.resolve("tinymce.EditorManager"),l=tinymce.util.Tools.resolve("tinymce.Env"),a=tinymce.util.Tools.resolve("tinymce.util.Tools");const p=e=>t=>t.options.get(e),u=p("importcss_merge_classes"),m=p("importcss_exclusive"),f=p("importcss_selector_converter"),y=p("importcss_selector_filter"),d=p("importcss_groups"),h=p("importcss_append"),_=p("importcss_file_filter"),g=p("skin"),v=p("skin_url"),b=Array.prototype.push,x=/^\.(?:ephox|tiny-pageembed|mce)(?:[.-]+\w+)+$/,T=e=>s(e)?t=>-1!==t.indexOf(e):e instanceof RegExp?t=>e.test(t):e,S=(e,t)=>{let s={};const r=/^(?:([a-z0-9\-_]+))?(\.[a-z0-9_\-\.]+)$/i.exec(t);if(!r)return;const o=r[1],n=r[2].substr(1).split(".").join(" "),c=a.makeMap("a,img");return r[1]?(s={title:t},e.schema.getTextBlockElements()[o]?s.block=o:e.schema.getBlockElements()[o]||c[o.toLowerCase()]?s.selector=o:s.inline=o):r[2]&&(s={inline:"span",title:t.substr(1),classes:n}),u(e)?s.classes=n:s.attributes={class:n},s},k=(e,t)=>null===t||m(e),w=e=>{e.on("init",(()=>{const t=(()=>{const e=[],t=[],s={};return{addItemToGroup:(e,r)=>{s[e]?s[e].push(r):(t.push(e),s[e]=[r])},addItem:t=>{e.push(t)},toFormats:()=>{return(r=t,n=e=>{const t=s[e];return 0===t.length?[]:[{title:e,items:t}]},(e=>{const t=[];for(let s=0,r=e.length;s<r;++s){if(!o(e[s]))throw new Error("Arr.flatten item "+s+" was not an array, input: "+e);b.apply(t,e[s])}return t})(((e,t)=>{const s=e.length,r=new Array(s);for(let o=0;o<s;o++){const s=e[o];r[o]=t(s,o)}return r})(r,n))).concat(e);var r,n}}})(),r={},n=T(y(e)),p=(e=>a.map(e,(e=>a.extend({},e,{original:e,selectors:{},filter:T(e.filter)}))))(d(e)),u=(t,s)=>{if(((e,t,s,r)=>!(k(e,s)?t in r:t in s.selectors))(e,t,s,r)){((e,t,s,r)=>{k(e,s)?r[t]=!0:s.selectors[t]=!0})(e,t,s,r);const o=((e,t,s,r)=>{let o;const n=f(e);return o=r&&r.selector_converter?r.selector_converter:n||(()=>S(e,s)),o.call(t,s,r)})(e,e.plugins.importcss,t,s);if(o){const t=o.name||c.DOM.uniqueId();return e.formatter.register(t,o),{title:o.title,format:t}}}return null};a.each(((e,t,r)=>{const o=[],n={},c=(t,n)=>{let p,u=t.href;if(u=(e=>{const t=l.cacheSuffix;return s(e)&&(e=e.replace("?"+t,"").replace("&"+t,"")),e})(u),u&&(!r||r(u,n))&&!((e,t)=>{const s=g(e);if(s){const r=v(e),o=r?e.documentBaseURI.toAbsolute(r):i.baseURL+"/skins/ui/"+s,n=i.baseURL+"/skins/content/";return t===o+"/content"+(e.inline?".inline":"")+".min.css"||-1!==t.indexOf(n)}return!1})(e,u)){a.each(t.imports,(e=>{c(e,!0)}));try{p=t.cssRules||t.rules}catch(e){}a.each(p,(e=>{e.styleSheet&&e.styleSheet?c(e.styleSheet,!0):e.selectorText&&a.each(e.selectorText.split(","),(e=>{o.push(a.trim(e))}))}))}};a.each(e.contentCSS,(e=>{n[e]=!0})),r||(r=(e,t)=>t||n[e]);try{a.each(t.styleSheets,(e=>{c(e)}))}catch(e){}return o})(e,e.getDoc(),T(_(e))),(e=>{if(!x.test(e)&&(!n||n(e))){const s=((e,t)=>a.grep(e,(e=>!e.filter||e.filter(t))))(p,e);if(s.length>0)a.each(s,(s=>{const r=u(e,s);r&&t.addItemToGroup(s.title,r)}));else{const s=u(e,null);s&&t.addItem(s)}}}));const m=t.toFormats();e.dispatch("addStyleModifications",{items:m,replace:!h(e)})}))};e.add("importcss",(e=>((e=>{const t=e.options.register,o=e=>s(e)||n(e)||r(e);t("importcss_merge_classes",{processor:"boolean",default:!0}),t("importcss_exclusive",{processor:"boolean",default:!0}),t("importcss_selector_converter",{processor:"function"}),t("importcss_selector_filter",{processor:o}),t("importcss_file_filter",{processor:o}),t("importcss_groups",{processor:"object[]"}),t("importcss_append",{processor:"boolean",default:!1})})(e),w(e),(e=>({convertSelectorToFormat:t=>S(e,t)}))(e))))}();
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>t.options.get(e),a=t("insertdatetime_dateformat"),n=t("insertdatetime_timeformat"),r=t("insertdatetime_formats"),s=t("insertdatetime_element"),i="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),o="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),l="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),m="January February March April May June July August September October November December".split(" "),c=(e,t)=>{if((e=""+e).length<t)for(let a=0;a<t-e.length;a++)e="0"+e;return e},d=(e,t,a=new Date)=>(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=(t=t.replace("%D","%m/%d/%Y")).replace("%r","%I:%M:%S %p")).replace("%Y",""+a.getFullYear())).replace("%y",""+a.getYear())).replace("%m",c(a.getMonth()+1,2))).replace("%d",c(a.getDate(),2))).replace("%H",""+c(a.getHours(),2))).replace("%M",""+c(a.getMinutes(),2))).replace("%S",""+c(a.getSeconds(),2))).replace("%I",""+((a.getHours()+11)%12+1))).replace("%p",a.getHours()<12?"AM":"PM")).replace("%B",""+e.translate(m[a.getMonth()]))).replace("%b",""+e.translate(l[a.getMonth()]))).replace("%A",""+e.translate(o[a.getDay()]))).replace("%a",""+e.translate(i[a.getDay()]))).replace("%%","%"),u=(e,t)=>{if(s(e)){const a=d(e,t);let n;n=/%[HMSIp]/.test(t)?d(e,"%Y-%m-%dT%H:%M"):d(e,"%Y-%m-%d");const r=e.dom.getParent(e.selection.getStart(),"time");r?((e,t,a,n)=>{const r=e.dom.create("time",{datetime:a},n);e.dom.replace(r,t),e.selection.select(r,!0),e.selection.collapse(!1)})(e,r,n,a):e.insertContent('<time datetime="'+n+'">'+a+"</time>")}else e.insertContent(d(e,t))};var p=tinymce.util.Tools.resolve("tinymce.util.Tools");const g=e=>t=>{const a=()=>{t.setEnabled(e.selection.isEditable())};return e.on("NodeChange",a),a(),()=>{e.off("NodeChange",a)}};e.add("insertdatetime",(e=>{(e=>{const t=e.options.register;t("insertdatetime_dateformat",{processor:"string",default:e.translate("%Y-%m-%d")}),t("insertdatetime_timeformat",{processor:"string",default:e.translate("%H:%M:%S")}),t("insertdatetime_formats",{processor:"string[]",default:["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"]}),t("insertdatetime_element",{processor:"boolean",default:!1})})(e),(e=>{e.addCommand("mceInsertDate",((t,n)=>{u(e,null!=n?n:a(e))})),e.addCommand("mceInsertTime",((t,a)=>{u(e,null!=a?a:n(e))}))})(e),(e=>{const t=r(e),a=(e=>{let t=e;return{get:()=>t,set:e=>{t=e}}})((e=>{const t=r(e);return t.length>0?t[0]:n(e)})(e)),s=t=>e.execCommand("mceInsertDate",!1,t);e.ui.registry.addSplitButton("insertdatetime",{icon:"insert-time",tooltip:"Insert date/time",select:e=>e===a.get(),fetch:a=>{a(p.map(t,(t=>({type:"choiceitem",text:d(e,t),value:t}))))},onAction:e=>{s(a.get())},onItemAction:(e,t)=>{a.set(t),s(t)},onSetup:g(e)});const i=e=>()=>{a.set(e),s(e)};e.ui.registry.addNestedMenuItem("insertdatetime",{icon:"insert-time",text:"Date/time",getSubmenuItems:()=>p.map(t,(t=>({type:"menuitem",text:d(e,t),onAction:i(t)}))),onSetup:g(e)})})(e)}))}();
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";var n=tinymce.util.Tools.resolve("tinymce.PluginManager");const e=n=>e=>typeof e===n,o=e("boolean"),a=e("number"),t=n=>e=>e.options.get(n),i=t("nonbreaking_force_tab"),s=t("nonbreaking_wrap"),r=(n,e)=>{let o="";for(let a=0;a<e;a++)o+=n;return o},c=(n,e)=>{const o=s(n)||n.plugins.visualchars?`<span class="${(n=>!!n.plugins.visualchars&&n.plugins.visualchars.isEnabled())(n)?"mce-nbsp-wrap mce-nbsp":"mce-nbsp-wrap"}" contenteditable="false">${r(" ",e)}</span>`:r(" ",e);n.undoManager.transact((()=>n.insertContent(o)))};var l=tinymce.util.Tools.resolve("tinymce.util.VK");const u=n=>e=>{const o=()=>{e.setEnabled(n.selection.isEditable())};return n.on("NodeChange",o),o(),()=>{n.off("NodeChange",o)}};n.add("nonbreaking",(n=>{(n=>{const e=n.options.register;e("nonbreaking_force_tab",{processor:n=>o(n)?{value:n?3:0,valid:!0}:a(n)?{value:n,valid:!0}:{valid:!1,message:"Must be a boolean or number."},default:!1}),e("nonbreaking_wrap",{processor:"boolean",default:!0})})(n),(n=>{n.addCommand("mceNonBreaking",(()=>{c(n,1)}))})(n),(n=>{const e=()=>n.execCommand("mceNonBreaking");n.ui.registry.addButton("nonbreaking",{icon:"non-breaking",tooltip:"Nonbreaking space",onAction:e,onSetup:u(n)}),n.ui.registry.addMenuItem("nonbreaking",{icon:"non-breaking",text:"Nonbreaking space",onAction:e,onSetup:u(n)})})(n),(n=>{const e=i(n);e>0&&n.on("keydown",(o=>{if(o.keyCode===l.TAB&&!o.isDefaultPrevented()){if(o.shiftKey)return;o.preventDefault(),o.stopImmediatePropagation(),c(n,e)}}))})(n)}))}();
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),a=tinymce.util.Tools.resolve("tinymce.Env");const t=e=>a=>a.options.get(e),n=t("pagebreak_separator"),o=t("pagebreak_split_block"),r="mce-pagebreak",s=e=>{const t=`<img src="${a.transparentSrc}" class="${r}" data-mce-resize="false" data-mce-placeholder />`;return e?`<p>${t}</p>`:t},c=e=>a=>{const t=()=>{a.setEnabled(e.selection.isEditable())};return e.on("NodeChange",t),t(),()=>{e.off("NodeChange",t)}};e.add("pagebreak",(e=>{(e=>{const a=e.options.register;a("pagebreak_separator",{processor:"string",default:"\x3c!-- pagebreak --\x3e"}),a("pagebreak_split_block",{processor:"boolean",default:!1})})(e),(e=>{e.addCommand("mcePageBreak",(()=>{e.insertContent(s(o(e)))}))})(e),(e=>{const a=()=>e.execCommand("mcePageBreak");e.ui.registry.addButton("pagebreak",{icon:"page-break",tooltip:"Page break",onAction:a,onSetup:c(e)}),e.ui.registry.addMenuItem("pagebreak",{text:"Page break",icon:"page-break",onAction:a,onSetup:c(e)})})(e),(e=>{const a=n(e),t=()=>o(e),c=new RegExp(a.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,(e=>"\\"+e)),"gi");e.on("BeforeSetContent",(e=>{e.content=e.content.replace(c,s(t()))})),e.on("PreInit",(()=>{e.serializer.addNodeFilter("img",(n=>{let o,s,c=n.length;for(;c--;)if(o=n[c],s=o.attr("class"),s&&-1!==s.indexOf(r)){const n=o.parent;if(n&&e.schema.getBlockElements()[n.name]&&t()){n.type=3,n.value=a,n.raw=!0,o.remove();continue}o.type=3,o.value=a,o.raw=!0}}))}))})(e),(e=>{e.on("ResolveName",(a=>{"IMG"===a.target.nodeName&&e.dom.hasClass(a.target,r)&&(a.name="pagebreak")}))})(e)}))}();
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager"),t=tinymce.util.Tools.resolve("tinymce.Env"),o=tinymce.util.Tools.resolve("tinymce.util.Tools");const n=e=>t=>t.options.get(e),i=n("content_style"),s=n("content_css_cors"),c=n("body_class"),r=n("body_id");e.add("preview",(e=>{(e=>{e.addCommand("mcePreview",(()=>{(e=>{const n=(e=>{var n;let l="";const a=e.dom.encode,d=null!==(n=i(e))&&void 0!==n?n:"";l+='<base href="'+a(e.documentBaseURI.getURI())+'">';const m=s(e)?' crossorigin="anonymous"':"";o.each(e.contentCSS,(t=>{l+='<link type="text/css" rel="stylesheet" href="'+a(e.documentBaseURI.toAbsolute(t))+'"'+m+">"})),d&&(l+='<style type="text/css">'+d+"</style>");const y=r(e),u=c(e),v='<script>document.addEventListener && document.addEventListener("click", function(e) {for (var elm = e.target; elm; elm = elm.parentNode) {if (elm.nodeName === "A" && !('+(t.os.isMacOS()||t.os.isiOS()?"e.metaKey":"e.ctrlKey && !e.altKey")+")) {e.preventDefault();}}}, false);<\/script> ",p=e.getBody().dir,w=p?' dir="'+a(p)+'"':"";return"<!DOCTYPE html><html><head>"+l+'</head><body id="'+a(y)+'" class="mce-content-body '+a(u)+'"'+w+">"+e.getContent()+v+"</body></html>"})(e);e.windowManager.open({title:"Preview",size:"large",body:{type:"panel",items:[{name:"preview",type:"iframe",sandboxed:!0,transparent:!1}]},buttons:[{type:"cancel",name:"close",text:"Close",primary:!0}],initialData:{preview:n}}).focus("close")})(e)}))})(e),(e=>{const t=()=>e.execCommand("mcePreview");e.ui.registry.addButton("preview",{icon:"preview",tooltip:"Preview",onAction:t}),e.ui.registry.addMenuItem("preview",{icon:"preview",text:"Preview",onAction:t})})(e)}))}();
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const n=("function",e=>"function"==typeof e);var o=tinymce.util.Tools.resolve("tinymce.dom.DOMUtils"),t=tinymce.util.Tools.resolve("tinymce.util.Tools");const a=e=>n=>n.options.get(e),c=a("save_enablewhendirty"),i=a("save_onsavecallback"),s=a("save_oncancelcallback"),r=(e,n)=>{e.notificationManager.open({text:n,type:"error"})},l=e=>n=>{const o=()=>{n.setEnabled(!c(e)||e.isDirty())};return o(),e.on("NodeChange dirty",o),()=>e.off("NodeChange dirty",o)};e.add("save",(e=>{(e=>{const n=e.options.register;n("save_enablewhendirty",{processor:"boolean",default:!0}),n("save_onsavecallback",{processor:"function"}),n("save_oncancelcallback",{processor:"function"})})(e),(e=>{e.ui.registry.addButton("save",{icon:"save",tooltip:"Save",enabled:!1,onAction:()=>e.execCommand("mceSave"),onSetup:l(e)}),e.ui.registry.addButton("cancel",{icon:"cancel",tooltip:"Cancel",enabled:!1,onAction:()=>e.execCommand("mceCancel"),onSetup:l(e)}),e.addShortcut("Meta+S","","mceSave")})(e),(e=>{e.addCommand("mceSave",(()=>{(e=>{const t=o.DOM.getParent(e.id,"form");if(c(e)&&!e.isDirty())return;e.save();const a=i(e);if(n(a))return a.call(e,e),void e.nodeChanged();t?(e.setDirty(!1),t.onsubmit&&!t.onsubmit()||("function"==typeof t.submit?t.submit():r(e,"Error: Form submit field collision.")),e.nodeChanged()):r(e,"Error: No form element found.")})(e)})),e.addCommand("mceCancel",(()=>{(e=>{const o=t.trim(e.startContent),a=s(e);n(a)?a.call(e,e):e.resetContent(o)})(e)}))})(e)}))}();
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
* TinyMCE version 6.7.3 (2023-11-15)
|
||||
* TinyMCE version 6.8.2 (2023-12-11)
|
||||
*/
|
||||
!function(){"use strict";var t=tinymce.util.Tools.resolve("tinymce.PluginManager");const s=(t,s,o)=>{t.dom.toggleClass(t.getBody(),"mce-visualblocks"),o.set(!o.get()),((t,s)=>{t.dispatch("VisualBlocks",{state:s})})(t,o.get())},o=("visualblocks_default_state",t=>t.options.get("visualblocks_default_state"));const e=(t,s)=>o=>{o.setActive(s.get());const e=t=>o.setActive(t.state);return t.on("VisualBlocks",e),()=>t.off("VisualBlocks",e)};t.add("visualblocks",((t,l)=>{(t=>{(0,t.options.register)("visualblocks_default_state",{processor:"boolean",default:!1})})(t);const a=(t=>{let s=!1;return{get:()=>s,set:t=>{s=t}}})();((t,o,e)=>{t.addCommand("mceVisualBlocks",(()=>{s(t,0,e)}))})(t,0,a),((t,s)=>{const o=()=>t.execCommand("mceVisualBlocks");t.ui.registry.addToggleButton("visualblocks",{icon:"visualblocks",tooltip:"Show blocks",onAction:o,onSetup:e(t,s)}),t.ui.registry.addToggleMenuItem("visualblocks",{text:"Show blocks",icon:"visualblocks",onAction:o,onSetup:e(t,s)})})(t,a),((t,e,l)=>{t.on("PreviewFormats AfterPreviewFormats",(s=>{l.get()&&t.dom.toggleClass(t.getBody(),"mce-visualblocks","afterpreviewformats"===s.type)})),t.on("init",(()=>{o(t)&&s(t,0,l)}))})(t,0,a)}))}();
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue