Ajout d'une extension

This commit is contained in:
Gauvain Boiché
2020-04-04 18:27:27 +02:00
parent c3ed8cc1c1
commit 3a964fe237
387 changed files with 58921 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
{% if ERRORS %}
<div class="errorbox">
<h3>{{ lang('ERROR') }}</h3>
<p class="error">
{% if ERRORS is iterable %}
{% for error in ERRORS %}
{{ lang(error) }}{% if not loop.last %}<br />{% endif %}
{% endfor %}
{% else %}
{{ lang(ERRORS) }}
{% endif %}
</p>
</div>
{% endif %}

View File

@@ -0,0 +1,199 @@
{% if S_FILE_SELECT %}
{{ include('simple_header.html') }}
<link href="{T_FONT_AWESOME_LINK}" rel="stylesheet">
<script>
function shop_select_file() {
let image = document.querySelector('input[name="select_image"]:checked');
opener.document.getElementById('{{ S_FILE_SELECT }}').value = (image instanceof HTMLElement ? image.value : '');
window.close();
}
</script>
{% else %}
{{ include('overall_header.html') }}
<h1>{{ PAGE_TITLE }}</h1>
<p>{{ lang('ACP_ASS_FILES_' ~ (S_FILE_MODE ? S_FILE_MODE|upper ~ '_') ~ 'EXPLAIN') }}</p>
{% endif %}
{% INCLUDECSS '@phpbbstudio_aps/css/aps_form.css' %}
{% INCLUDECSS '@phpbbstudio_ass/css/ass_common.css' %}
{% if S_FILE_INDEX %}
<div>
<a class="column1 centered-text" href="{{ U_FILE_FILES }}">
<fieldset>
<h2 class="centered-text ass-mar">Files</h2>
<i class="fa fa-files-o fa-5x ass-mar"></i>
</fieldset>
</a>
<a class="column2 centered-text" href="{{ U_FILE_IMAGES }}">
<fieldset>
<h2 class="centered-text ass-mar">Images</h2>
<i class="fa fa-file-image-o fa-5x ass-mar"></i>
</fieldset>
</a>
</div>
{% else %}
<fieldset>
<legend>{{ lang('ACP_ASS_FILES') }}</legend>
<fieldset>
{% if not S_FILE_SELECT %}
<div class="pull-right">
<a class="aps-button-red" href="{{ U_BACK }}" title="{{ lang('BACK') }}"><i class="icon fa-arrow-left fa-fw"></i></a>
</div>
{% endif %}
<a class="aps-button-blue" href="{{ U_ACTION }}"><i class="icon fa-home fa-fw"></i></a>
{%- for crumb in DIRECTORIES -%}
<i class="icon fa-angle-right fa-fw ass-mar-side"></i>
<a href="{{ U_ACTION ~ '&dir=' ~ DIRECTORIES|slice(0, loop.index)|join('/')|url_encode }}">
{% if loop.last %}
<strong>{{ crumb }}</strong>
{% else %}
{{ crumb }}
{%- endif -%}
</a>
{% endfor %}
</fieldset>
<fieldset class="ass-no-mar ass-no-radius-bottom">
{% spaceless %}
{% if DIRECTORIES|length %}
<a class="aps-button-blue ass-mar-right" href="{{ U_ACTION ~ '&dir=' ~ DIRECTORIES|slice(0, -1)|join('/')|url_encode }}" title="{{ lang('LEVEL_UP') }}">
<i class="fa fa-level-up fa-fw fa-flip-horizontal"></i>
</a>
{% else %}
<span class="aps-button-red ass-mar-right">
<i class="fa fa-level-up fa-fw fa-flip-horizontal"></i>
</span>
{% endif %}
{% if not S_FILE_SELECT %}
<form class="aps-form ass-inline ass-mar-side" name="ass_files" method="post" action="{{ U_ACTION_FORM }}" data-ajax="true" data-refresh="true">
<label class="ass-label-fix">
<input class="autowidth ass-no-radius-right" id="folder" name="folder" type="text">
</label>
<button class="aps-button-green ass-no-radius-left" type="submit">
<i class="fa fa-plus fa-fw"></i>
</button>
<input type="hidden" name="action" value="add_dir">
{{ S_FORM_TOKEN }}
</form>
<form class="aps-form ass-inline ass-mar-side" name="ass_files" method="post" action="{{ U_ACTION_FORM }}" enctype="multipart/form-data">
<label class="ass-label-fix">
<input class="autowidth ass-no-radius-right" id="file" name="file" type="file"{% if ALLOWED_EXTS %} accept="{{ ALLOWED_EXSTS }}"{% endif %}>
</label>
<button class="aps-button-green ass-no-radius-left" type="submit">
<i class="fa fa-upload fa-fw"></i>
</button>
<input type="hidden" name="action" value="add_file">
{{ S_FORM_TOKEN }}
</form>
{% endif %}
{% endspaceless %}
</fieldset>
<fieldset class="ass-no-mar ass-no-radius-top">
<table class="table1 responsive">
<thead>
<tr>
{% if not S_FILE_SELECT %}<th class="centered-text">{{ lang('ACTIONS') }}</th>{% endif %}
<th>{{ lang('ASS_FILENAME') }}</th>
<th class="centered-text">{{ lang('ASS_FILETIME') }}</th>
<th class="centered-text">{{ lang('ASS_FILESIZE') }}</th>
</tr>
</thead>
<tbody>
{% for folder in ass_folders %}
{% if loop.first %}
<tr>
<td class="row3" colspan="{{ S_FILE_SELECT ? 3 : 4 }}"><strong>{{ lang('ASS_FOLDERS') }}</strong></td>
</tr>
{% endif %}
<tr>
{% if not S_FILE_SELECT %}
<td class="actions ass-actions">
<a class="aps-button-red" href="{{ folder.U_DELETE }}" data-ajax="row_delete">
<i class="icon fa-trash fa-fw"></i>
</a>
</td>
{% endif %}
<td class="name">
<i class="icon fa-folder fa-fw ass-mar-side"></i>
<a href="{{ folder.U_VIEW }}">{{ folder.NAME }}</a>
</td>
<td class="row2 centered-text ass-width-200">{{ folder.TIME }}</td>
<td class="row2 centered-text ass-width-200"></td>
</tr>
{% endfor %}
{% for file in ass_files %}
{% if loop.first %}
<tr>
<td class="row3" colspan="{{ S_FILE_SELECT ? 3 : 4 }}"><strong>{{ lang('ASS_FILES') }}</strong></td>
</tr>
{% endif %}
{% if S_FILE_SELECT %}
{% if loop.first %}
<tr>
<td colspan="3">
<div class="ass-file-select-container">
{% endif %}
<div class="ass-file-select centered-text">
<label>
<input name="select_image" type="radio" value="{{ file.VALUE }}"{{ file.S_SELECTED ? ' checked' }}>
{% if S_FILE_SELECT != 'file' %}
<img src="{{ file.IMG }}" alt="{{ file.NAME }}">
{% else %}
<div class="ass-actions">
<i class="fa fa-{{ file.ICON }} fa-3x" aria-hidden="true"></i>
<div class="ass-actions">{{ file.NAME }}</div>
</div>
{% endif %}
</label>
</div>
{% if loop.last %}
</div>
</td>
</tr>
{% endif %}
{% else %}
<tr class="row-highlight">
<td class="actions ass-actions">
<a class="aps-button-red" href="{{ file.U_DELETE }}" data-ajax="row_delete">
<i class="icon fa-trash fa-fw"></i>
</a>
</td>
<td class="name">
<i class="icon fa-{{ file.ICON }} fa-fw ass-mar-side"></i>
<span>{{ file.NAME }}</span>
</td>
<td class="row2 centered-text ass-width-200">{{ file.TIME }}</td>
<td class="row2 centered-text ass-width-200">{{ file.SIZE }}</td>
</tr>
{% endif %}
{% endfor %}
</tbody>
</table>
{% if S_FILE_SELECT %}
<p class="submit-buttons">
<button class="aps-button-green" onclick="shop_select_file(); return false">{{ lang('SELECT') }}</button>
</p>
{% endif %}
</fieldset>
</fieldset>
{% endif %}
{% if S_FILE_SELECT %}
{{ include('simple_footer.html') }}
{% else %}
{{ include('overall_footer.html') }}
{% endif %}

View File

@@ -0,0 +1,206 @@
{% include 'overall_header.html' %}
{% INCLUDECSS '@phpbbstudio_aps/css/aps_form.css' %}
{% INCLUDECSS '@phpbbstudio_aps/css/aps_common.css' %}
{% INCLUDECSS '@phpbbstudio_ass/css/ass_common.css' %}
<h1>{{ PAGE_TITLE }}</h1>
<p>{{ lang('ACP_ASS_INVENTORY_EXPLAIN') }}</p>
{% if not S_TYPE %}
<fieldset class="nobg centered-text">
<div class="clearfix">
<div class="column1">
<a class="aps-button-blue ass-button-inventory" href="{{ U_GLOBAL }}">
<span>{{ lang('ACP_MANAGE_USERS') }}</span>
<i class="fa fa-users fa-4x"></i>
</a>
</div>
<div class="column2">
<a class="aps-button-blue ass-button-inventory" href="{{ U_MANAGE }}">
<span>{{ lang('ACP_ASS_USER_INVENTORY') }}</span>
<i class="fa fa-user fa-4x"></i>
</a>
</div>
</div>
</fieldset>
{% else %}
<fieldset class="quick">
<a class="aps-button-blue" href="{{ U_BACK }}" title="{{ lang('BACK') }}">
<i class="icon fa-angle-left fa-fw"></i>
<span>{{ lang('BACK') }}</span>
</a>
</fieldset>
<form class="aps-form" id="ass_inventory" name="ass_inventory" method="post" action="{{ U_ACTION }}">
{{ include('@phpbbstudio_ass/ass_errors.html') }}
{% if S_TYPE == 'global' %}
{% INCLUDECSS '@phpbbstudio_ass/css/select2.min.css' %}
{% INCLUDEJS '@phpbbstudio_ass/js/select2.min.js' %}
{% INCLUDEJS '@phpbbstudio_ass/js/ass_common.js' %}
<fieldset>
<dl>
<dt><label for="action">{{ lang('ACTION') ~ lang('COLON') }}</label></dt>
<dd>
<label>
<input class="radio aps-bool" id="action" name="action" type="radio" value="add"{{ S_ADD ? ' checked' }}>
<span class="aps-button-green">{{ lang('ADD') }}</span>
</label>
<label>
<input class="radio aps-bool" name="action" type="radio" value="delete"{{ not S_ADD ? ' checked' }}>
<span class="aps-button-red">{{ lang('DELETE') }}</span>
</label>
</dd>
</dl>
<dl>
<dt><label for="usernames">{{ lang('USERNAMES') ~ lang('COLON') }}</label></dt>
<dd>
<textarea id="usernames" name="usernames" rows="5">{{ USERNAMES }}</textarea>
<div class="centered-text">
<label>
<a class="aps-button-blue ass-no-radius-top" href="{{ U_FIND_USER }}" onclick="find_username(this.href); return false;">
{{ lang('FIND_USERNAME') }}
</a>
</label>
</div>
</dd>
</dl>
<dl>
<dt><label for="groups">{{ lang('GROUPS') ~ lang('COLON') }}</label></dt>
<dd>
<select class="ass-width-90p ass-vertical-resize" id="groups" name="groups[]" multiple data-studio-select="true" data-language="{{ user.data.user_lang }}">
{% for group in groups %}
<option{% if group.S_SPECIAL %} class="sep"{% endif %} value="{{ group.ID }}"{{ group.S_SELECTED ? ' selected' }}>
{{ group.NAME }}
</option>
{% endfor %}
</select>
</dd>
</dl>
<dl>
<dt><label for="items">{{ lang('ACP_ASS_ITEMS') ~ lang('COLON') }}</label></dt>
<dd>
<select class="ass-width-90p ass-vertical-resize" id="items" name="items[]" multiple data-studio-select="true" data-language="{{ user.data.user_lang }}">
{% for category in categories %}
<optgroup label="{{ category.TITLE }}" {% if category.S_INACTIVE %} class="icon-red" title="{{ lang('ASS_CATEGORY_INACTIVE') }}"{% endif %}>
{% for item in category.items %}
<option value="{{ item.ID }}"{{ item.S_SELECTED ? ' selected' }}{% if item.S_INACTIVE %} class="sep icon-red" title="{{ lang('ASS_ITEM_INACTIVE') }}"{% endif %}>{{ item.TITLE }}</option>
{% endfor %}
</optgroup>
{% endfor %}
</select>
</dd>
</dl>
</fieldset>
{% else %}
{% if U_FIND_USER %}
<fieldset>
<dl>
<dt><label for="username">{{ lang('USERNAME') ~ lang('COLON') }}</label></dt>
<dd>
<input class="inputbox autowidth" id="username" name="username" type="text" required>
<label>
<a class="aps-button-blue" href="{{ U_FIND_USER }}" onclick="find_username(this.href); return false;">
{{ lang('FIND_USERNAME') }}
</a>
</label>
</dd>
</dl>
</fieldset>
{% else %}
{% INCLUDECSS '@phpbbstudio_ass/css/select2.min.css' %}
{% INCLUDEJS '@phpbbstudio_ass/js/select2.min.js' %}
{% INCLUDEJS '@phpbbstudio_ass/js/ass_common.js' %}
<fieldset>
<table class="table1 forums zebra-table responsive">
<thead>
<tr>
<th class="centered-text">{{ lang('ENABLED') }}</th>
<th class="centered-text">{{ lang('ACP_ASS_CONFLICT') }}</th>
<th class="name">{{ lang('ASS_ITEM') }}</th>
<th class="centered-text">{{ lang('ASS_PURCHASE_TIME') }}</th>
<th class="centered-text">{{ lang('ASS_USED_LAST') }}</th>
<th class="centered-text">{{ lang('ASS_USAGES') }}</th>
<th class="centered-text">{{ lang('ASS_GIFT') }}</th>
<th class="centered-text">{{ lang('ACTIONS') }}</th>
</tr>
</thead>
<tbody>
{% for category in categories if category.S_INVENTORY %}
{% for item in category.items if item.S_INVENTORY %}
<tr>
<td class="actions {{ item.S_ACTIVE and category.S_ACTIVE ? 'yes' : 'never' }}"{% if not item.S_ACTIVE or not category.S_ACTIVE %} title="{{ lang(item.S_ACTIVE ? 'ASS_CATEGORY_INACTIVE' : 'ASS_ITEM_INACTIVE') }}"{% endif %}>
<i class="icon fa-fw {{ item.S_ACTIVE and category.S_ACTIVE ? 'fa-check icon-green' : 'fa-times icon-red' }}" aria-hidden="true"></i>
</td>
<td class="actions {{ item.CONFLICT ? 'never' : 'yes' }}">
<i class="icon fa-fw {{ item.CONFLICT ? 'fa-exclamation icon-red' : 'fa-check icon-green' }}" aria-hidden="true"></i>
</td>
<td>
<span>{{ category.TITLE }}</span>
<i class="icon fa-angle-double-right fa-fw icon-orange" aria-hidden="true"></i>
<strong class="icon-black">{{ item.TITLE }}</strong>
</td>
<td>{{ item.PURCHASE_TIME }}</td>
<td>{{ item.USE_TIME }}</td>
<td class="actions">{{ item.USE_COUNT }}</td>
<td>{{ item.GIFTER }}</td>
<td class="actions ass-actions">
<a class="aps-button-red" href="{{ U_DELETE ~ item.ID }}" title="{{ lang('DELETE') }}" data-ajax="row_delete">
<i class="icon fa-trash fa-fw" aria-hidden="true"></i>
<span class="sr-only">{{ lang('DELETE') }}</span>
</a>
</td>
</tr>
{% endfor %}
{% else %}
<tr>
<td colspan=""></td>
</tr>
{% endfor %}
</tbody>
</table>
</fieldset>
<fieldset>
<legend>{{ lang('ADD') }}</legend>
<dl>
<dt><label for="items">{{ lang('ACP_ASS_ITEMS') ~ lang('COLON') }}</label></dt>
<dd>
<select class="ass-width-90p ass-vertical-resize" id="items" name="items[]" multiple data-studio-select="true" data-language="{{ user.data.user_lang }}">
{% for category in categories %}
<optgroup label="{{ category.TITLE }}" {% if category.S_INACTIVE %} class="icon-red" title="{{ lang('ASS_CATEGORY_INACTIVE') }}"{% endif %}>
{% for item in category.items if not item.S_INVENTORY %}
<option value="{{ item.ID }}"{{ item.S_SELECTED ? ' selected' }}{% if item.S_INACTIVE %} class="sep icon-red" title="{{ lang('ASS_ITEM_INACTIVE') }}"{% endif %}>{{ item.TITLE }}</option>
{% endfor %}
</optgroup>
{% endfor %}
</select>
</dd>
</dl>
<input type="hidden" name="username" value="{{ ASS_USERNAME }}">
</fieldset>
{% endif %}
{% endif %}
<fieldset>
<p class="submit-buttons">
{{ S_FORM_TOKEN }}
<input class="aps-button-green" id="submit" name="{{ S_TYPE == 'manage' and U_FIND_USER ? 'submit_user' : 'submit' }}" type="submit" value="{{ lang('SUBMIT') }}">
&nbsp;
<input class="aps-button-red" id="reset" name="reset" type="reset" value="{{ lang('RESET') }}">
</p>
</fieldset>
</form>
{% endif %}
{% include 'overall_footer.html' %}

View File

@@ -0,0 +1,351 @@
{% INCLUDECSS '@phpbbstudio_ass/css/select2.min.css' %}
{% INCLUDEJS '@phpbbstudio_ass/js/select2.min.js' %}
{% INCLUDEJS '@phpbbstudio_ass/js/ass_help.js' %}
<div class="ass-help-toolbox hidden">
<button class="aps-button-red ass-help-close" type="button" title="{{ lang('CANCEL') }}"><i class="icon fa-times fa-fw"></i></button>
<button class="aps-button-blue ass-help-prev hidden" type="button" title="{{ lang('PREVIOUS') }}"><i class="icon fa-chevron-left fa-fw"></i></button>
<button class="aps-button-blue ass-help-next" type="button" title="{{ lang('NEXT') }}"><i class="icon fa-chevron-right fa-fw"></i></button>
<div class="ass-help-flexbox">
{% for setting in ITEM_HELP_DATA %}
<div data-id="{{ setting }}">
{% set setting = setting|replace({'_start': ''}) %}
<h3>{{ lang('ACP_ASS_ITEM_' ~ setting|upper) }}</h3>
{# The "nl2br" filter makes any other HTML elements in the string unusable #}
<div>{{ lang('ACP_ASS_HELP_' ~ setting|upper)|replace({"\n": '<br>'}) }}</div>
</div>
{% endfor %}
</div>
</div>
{% macro desc(string, italic) %}
<br><span{% if italic|default(false) %} class="explain"{% endif %}>{{ lang('ACP_ASS_ITEM_' ~ string ~ '_DESC') }}</span>
{% endmacro %}
{% from _self import desc as desc %}
<fieldset>
<legend>{{ lang('ACP_ASS_SETTINGS_TYPE') }}</legend>
<dl>
<dt><label for="type">{{ lang('ACP_ASS_ITEM_TYPE') ~ lang('COLON') }}</label></dt>
<dd>
<select id="type" name="type" required>
<option disabled{{ not item.TYPE ? ' selected' }}>{{ lang('ACP_ASS_ITEM_TYPE_SELECT') ~ lang('ELLIPSIS') }}</option>
{% for type in item_types %}
<option value="{{ type.ID }}"{{ type.S_SELECTED ? ' selected' }}>{{ type.TITLE }}</option>
{% endfor %}
</select>
</dd>
</dl>
<div id="type_template" data-shop-url="{{ U_ITEM_TYPE }}">
{% if T_ITEM_TEMPLATE %}
{{ include(T_ITEM_TEMPLATE, ignore_missing = true) }}
{% endif %}
</div>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_SETTINGS_DEFAULT') }}</legend>
<dl>
<dt><label for="price">{{ lang('ACP_ASS_ITEM_PRICE') ~ lang('COLON') }}</label></dt>
<dd class="ass-input-icon">{{ aps_icon() }}<input class="autowidth" id="price" name="price" type="number" value="{{ aps_format(ITEM_PRICE) }}" min="0" max="999999999999.99" step="{{ aps_step() }}"></dd>
</dl>
<dl>
<dt><label for="stock_unlimited">{{ lang('ACP_ASS_ITEM_STOCK_UNLIMITED') ~ lang('COLON') }}</label>{{ desc('STOCK_UNLIMITED') }}</dt>
<dd>
<label>
<input class="radio aps-bool" id="stock_unlimited" name="stock_unlimited" type="radio" value="1"{{ ITEM_STOCK_UNLIMITED ? ' checked' }}>
<span class="aps-button-green">{{ lang('YES') }}</span>
</label>
<label>
<input class="radio aps-bool" name="stock_unlimited" type="radio" value="0"{{ not ITEM_STOCK_UNLIMITED ? ' checked' }}>
<span class="aps-button-red">{{ lang('NO') }}</span>
</label>
</dd>
</dl>
<dl>
<dt><label for="stock">{{ lang('ACP_ASS_ITEM_STOCK') ~ lang('COLON') }}</label>{{ desc('STOCK') }}</dt>
<dd><input class="autowidth" id="stock" name="stock" type="number" value="{{ ITEM_STOCK }}" min="0" max="4294967295" step="1"></dd>
</dl>
<dl>
<dt><label for="stock_threshold">{{ lang('ACP_ASS_ITEM_STOCK_THRESHOLD') ~ lang('COLON') }}</label>{{ desc('STOCK_THRESHOLD') }}</dt>
<dd><input class="autowidth" id="stock_threshold" name="stock_threshold" type="number" value="{{ ITEM_STOCK_THRESHOLD }}" min="0" max="4294967295" step="1"></dd>
</dl>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_SETTINGS_GIFT') }}</legend>
<dl>
<dt><label for="gift">{{ lang('ACP_ASS_ITEM_GIFT') ~ lang('COLON') }}</label>{{ desc('GIFT') }}</dt>
<dd>
<label>
<input class="radio aps-bool" id="gift" name="gift" type="radio" value="1"{{ ITEM_GIFT ? ' checked' }}>
<span class="aps-button-green">{{ lang('YES') }}</span>
</label>
<label>
<input class="radio aps-bool" name="gift" type="radio" value="0"{{ not ITEM_GIFT ? ' checked' }}>
<span class="aps-button-red">{{ lang('NO') }}</span>
</label>
</dd>
</dl>
<dl>
<dt><label for="gift_only">{{ lang('ACP_ASS_ITEM_GIFT_ONLY') ~ lang('COLON') }}</label>{{ desc('GIFT_ONLY') }}</dt>
<dd>
<label>
<input class="radio aps-bool" id="gift_only" name="gift_only" type="radio" value="1"{{ ITEM_GIFT_ONLY ? ' checked' }}>
<span class="aps-button-green">{{ lang('YES') }}</span>
</label>
<label>
<input class="radio aps-bool" name="gift_only" type="radio" value="0"{{ not ITEM_GIFT_ONLY ? ' checked' }}>
<span class="aps-button-red">{{ lang('NO') }}</span>
</label>
</dd>
</dl>
<dl>
<dt><label for="gift_type">{{ lang('ACP_ASS_ITEM_GIFT_TYPE') ~ lang('COLON') }}</label>{{ desc('GIFT_TYPE') }}</dt>
<dd>
<label>
<input class="radio ass-radio" id="gift_type" name="gift_type" type="radio" value="1"{{ ITEM_GIFT_TYPE ? ' checked' }}>
<span class="aps-button-blue">{{ lang('ACP_ASS_GIFT_PERCENTAGE') }}</span>
</label>
<label>
<input class="radio ass-radio" name="gift_type" type="radio" value="0"{{ not ITEM_GIFT_TYPE ? ' checked' }}>
<span class="aps-button-blue">{{ lang('ACP_ASS_GIFT_PRICE') }}</span>
</label>
</dd>
</dl>
<dl>
<dt><label for="gift_percentage">{{ lang('ACP_ASS_ITEM_GIFT_PERCENTAGE') ~ lang('COLON') }}</label>{{ desc('GIFT_PERCENTAGE') }}</dt>
<dd class="ass-input-icon"><i class="icon fa-percent fa-fw" aria-hidden="true"></i><input class="autowidth" id="gift_percentage" name="gift_percentage" type="number" value="{{ ITEM_GIFT_PERCENTAGE }}" min="-100" max="999" step="1"></dd>
</dl>
<dl>
<dt><label for="gift_price">{{ lang('ACP_ASS_ITEM_GIFT_PRICE') ~ lang('COLON') }}</label>{{ desc('GIFT_PRICE') }}</dt>
<dd class="ass-input-icon">{{ aps_icon() }}<input class="autowidth" id="gift_price" name="gift_price" type="number" value="{{ aps_format(ITEM_GIFT_PRICE) }}" min="0" max="999999999999.99" step="{{ aps_step() }}"></dd>
</dl>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_SETTINGS_SPECIAL') }}</legend>
<dl>
<dt><label for="sale_price">{{ lang('ACP_ASS_ITEM_SALE_PRICE') ~ lang('COLON') }}</label>{{ desc('SALE_PRICE') }}</dt>
<dd class="ass-input-icon">{{ aps_icon() }}<input class="autowidth" id="sale_price" name="sale_price" type="number" value="{{ aps_format(ITEM_SALE_PRICE) }}" min="0" max="999999999999.99" step="{{ aps_step() }}"></dd>
</dl>
{% set timezone =
'<fieldset>' ~
'<dl><dt>' ~ lang('ACP_ASS_ITEM_TIMEZONE_BOARD') ~ lang('COLON') ~ '</dt><dd>' ~ "now"|date(DATE_FORMAT, TIMEZONE) ~ '</dd></dl>' ~
'<dl><dt>' ~ lang('ACP_ASS_ITEM_TIMEZONE_YOUR') ~ lang('COLON') ~ '</dt><dd>' ~ "now"|date(DATE_FORMAT) ~ '</dd></dl>' ~
'</fieldset>'
%}
<dl>
<dt><label for="sale_start">{{ lang('ACP_ASS_ITEM_SALE') ~ lang('COLON') }}</label>
{{ desc('SALE') ~ desc('TIMEZONE', true) }}
<i class="icon fa-info-circle fa-fw icon-pink ass-pointer" onclick="phpbb.alert('{{ lang('INFORMATION') }}', '{{ timezone|e('js') }}')"></i>
</dt>
<dd class="shop-date ass-input-icon">
{% spaceless %}
<div class="hidden"
data-shop-date="true"
data-apply="{{ lang('ACP_ASS_APPLY') }}"
data-clear="{{ lang('ACP_ASS_CLEAR') }}"
data-january="{{ lang(['datetime', 'January']) }}"
data-february="{{ lang(['datetime', 'February']) }}"
data-march="{{ lang(['datetime', 'March']) }}"
data-april="{{ lang(['datetime', 'April']) }}"
data-may="{{ lang(['datetime', 'May']) }}"
data-june="{{ lang(['datetime', 'June']) }}"
data-july="{{ lang(['datetime', 'July']) }}"
data-august="{{ lang(['datetime', 'August']) }}"
data-september="{{ lang(['datetime', 'September']) }}"
data-october="{{ lang(['datetime', 'October']) }}"
data-november="{{ lang(['datetime', 'November']) }}"
data-december="{{ lang(['datetime', 'December']) }}"
data-mon="{{ lang(['datetime', 'Mon']) }}"
data-tue="{{ lang(['datetime', 'Tue']) }}"
data-wed="{{ lang(['datetime', 'Wed']) }}"
data-thu="{{ lang(['datetime', 'Thu']) }}"
data-fri="{{ lang(['datetime', 'Fri']) }}"
data-sat="{{ lang(['datetime', 'Sat']) }}"
data-sun="{{ lang(['datetime', 'Sun']) }}"
></div>
<i class="icon fa-calendar-plus-o fa-fw" aria-hidden="true"></i>
<input class="autowidth" id="sale_start" name="sale_start" type="text" value="{{ ITEM_SALE_START_UNIX ? ITEM_SALE_START_UNIX|date(DATE_FORMAT, TIMEZONE) }}">&nbsp;
<i class="icon fa-calendar-times-o fa-fw" aria-hidden="true"></i>
{# <!--suppress HtmlFormInputWithoutLabel --> #}
<input class="autowidth" id="sale_until" name="sale_until" type="text" value="{{ ITEM_SALE_UNTIL_UNIX ? ITEM_SALE_UNTIL_UNIX|date(DATE_FORMAT, TIMEZONE) }}" readonly>
{% endspaceless %}
</dd>
</dl>
<dl>
<dt><label for="featured_start">{{ lang('ACP_ASS_ITEM_FEATURED') ~ lang('COLON') }}</label>
{{ desc('FEATURED') ~ desc('TIMEZONE', true) }}
<i class="icon fa-info-circle fa-fw icon-pink ass-pointer" onclick="phpbb.alert('{{ lang('INFORMATION') }}', '{{ timezone|e('js') }}')"></i>
</dt>
<dd class="shop-date ass-input-icon">
{% spaceless %}
<i class="icon fa-calendar-plus-o fa-fw" aria-hidden="true"></i>
<input class="autowidth" id="featured_start" name="featured_start" type="text" value="{{ ITEM_FEATURED_START_UNIX ? ITEM_FEATURED_START_UNIX|date(DATE_FORMAT, TIMEZONE) }}">&nbsp;
<i class="icon fa-calendar-times-o fa-fw" aria-hidden="true"></i>
{# <!--suppress HtmlFormInputWithoutLabel --> #}
<input class="autowidth" id="featured_until" name="featured_until" type="text" value="{{ ITEM_FEATURED_UNTIL_UNIX ? ITEM_FEATURED_UNTIL_UNIX|date(DATE_FORMAT, TIMEZONE) }}" readonly>
{% endspaceless %}
</dd>
</dl>
<dl>
<dt><label for="available_start">{{ lang('ACP_ASS_ITEM_AVAILABLE') ~ lang('COLON') }}</label>
{{ desc('AVAILABLE') ~ desc('TIMEZONE', true) }}
<i class="icon fa-info-circle fa-fw icon-pink ass-pointer" onclick="phpbb.alert('{{ lang('INFORMATION') }}', '{{ timezone|e('js') }}')"></i>
</dt>
<dd class="shop-date ass-input-icon">
{% spaceless %}
<i class="icon fa-calendar-plus-o fa-fw" aria-hidden="true"></i>
<input class="autowidth" id="available_start" name="available_start" type="text" value="{{ ITEM_AVAILABLE_START_UNIX ? ITEM_AVAILABLE_START_UNIX|date(DATE_FORMAT, TIMEZONE) }}">&nbsp;
<i class="icon fa-calendar-times-o fa-fw" aria-hidden="true"></i>
{# <!--suppress HtmlFormInputWithoutLabel --> #}
<input class="autowidth" id="available_until" name="available_until" type="text" value="{{ ITEM_AVAILABLE_UNTIL_UNIX ? ITEM_AVAILABLE_UNTIL_UNIX|date(DATE_FORMAT, TIMEZONE) }}" readonly>
{% endspaceless %}
</dd>
</dl>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_SETTINGS_INVENTORY') }}</legend>
<dl>
<dt><label for="count">{{ lang('ACP_ASS_ITEM_COUNT') ~ lang('COLON') }}</label>{{ desc('COUNT') ~ desc('COUNT_ZERO', true) }}</dt>
<dd><input class="autowidth" id="count" name="count" type="number" value="{{ ITEM_COUNT }}" min="0" max="4294967295" step="1"></dd>
</dl>
<dl>
<dt><label for="stack">{{ lang('ACP_ASS_ITEM_STACK') ~ lang('COLON') }}</label>{{ desc('STACK') }}</dt>
<dd><input class="autowidth" id="stack" name="stack" type="number" value="{{ ITEM_STACK }}" min="1" max="4294967295" step="1" required></dd>
</dl>
{# These strings should NOT be translated, as strtotime() only accept English. #}
{% set str_to_time = ['1 year', '1 week', '5 days 12 hours', '3 weeks 6 days 23 hours 59 minutes 59 seconds'] %}
{% set str_to_time = str_to_time|join('</code>&rdquo;<br>&ldquo;<code>') %}
{% set str_to_time = '<br>&ldquo;<code>' ~ str_to_time ~ '</code>&rdquo;' %}
<dl>
<dt><label for="refund_string">{{ lang('ACP_ASS_ITEM_REFUND_STRING') ~ lang('COLON') }}</label>
{{ desc('REFUND') ~ desc('STR_TO_TIME', true) }}
<i class="icon fa-info-circle fa-fw icon-pink ass-pointer" onclick="phpbb.alert('{{ lang('INFORMATION') }}', '{{ lang('ACP_ASS_ITEM_STR_TO_TIME') ~ lang('COLON') ~ str_to_time|e('js') }}')"></i>
</dt>
<dd><input class="autowidth" id="refund_string" name="refund_string" type="text" value="{{ ITEM_REFUND_STRING }}"></dd>
</dl>
<dl>
<dt><label for="expire_string">{{ lang('ACP_ASS_ITEM_EXPIRE_STRING') ~ lang('COLON') }}</label>
{{ desc('EXPIRE') ~ desc('STR_TO_TIME', true) }}
<i class="icon fa-info-circle fa-fw icon-pink ass-pointer" onclick="phpbb.alert('{{ lang('INFORMATION') }}', '{{ lang('ACP_ASS_ITEM_STR_TO_TIME') ~ lang('COLON') ~ str_to_time|e('js') }}')"></i>
</dt>
<dd><input class="autowidth" id="expire_string" name="expire_string" type="text" value="{{ ITEM_EXPIRE_STRING }}"></dd>
</dl>
<dl>
<dt><label for="delete_string">{{ lang('ACP_ASS_ITEM_DELETE_STRING') ~ lang('COLON') }}</label>
{{ desc('DELETE') ~ desc('STR_TO_TIME', true) }}
<i class="icon fa-info-circle fa-fw icon-pink ass-pointer" onclick="phpbb.alert('{{ lang('INFORMATION') }}', '{{ lang('ACP_ASS_ITEM_STR_TO_TIME') ~ lang('COLON') ~ str_to_time|e('js') }}')"></i>
</dt>
<dd><input class="autowidth" id="delete_string" name="delete_string" type="text" value="{{ ITEM_DELETE_STRING }}"></dd>
</dl>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_SETTINGS_DISPLAY') }}</legend>
<dl>
<dt><label for="background">{{ lang('ACP_ASS_ITEM_BACKGROUND') ~ lang('COLON') }}</label>{{ desc('BACKGROUND') }}</dt>
<dd class="ass-input-icon" data-shop-file="{{ U_ITEM_IMAGE }}">
<i class="icon fa-trash-o fa-fw ass-pointer" aria-hidden="true" onclick="this.nextSibling.value=''"></i><input class="autowidth" id="background" name="background" type="text" value="{{ ITEM_BACKGROUND }}" readonly>
</dd>
</dl>
<dl>
<dt><label for="images">{{ lang('ACP_ASS_ITEM_IMAGES') ~ lang('COLON') }}</label></dt>
{% for image in ITEM_IMAGES %}
<dd class="ass-input-icon" data-shop-file="{{ U_ITEM_IMAGE }}">
{% spaceless %}
<i class="icon fa-trash-o fa-fw ass-pointer" aria-hidden="true" onclick="this.nextSibling.value=''"></i>
{# <!--suppress HtmlFormInputWithoutLabel --> #}
<input class="autowidth" id="images_{{ loop.index0 }}" name="images[{{ loop.index0 }}]" type="text" value="{{ image }}" readonly>
{% endspaceless %}
</dd>
{% endfor %}
<dd class="ass-input-icon" data-shop-file="{{ U_ITEM_IMAGE }}">
{% spaceless %}
<i class="icon fa-trash-o fa-fw ass-pointer" aria-hidden="true" onclick="this.nextSibling.value=''"></i>
{# <!--suppress HtmlFormInputWithoutLabel --> #}
<input class="autowidth" id="images_{{ ITEM_IMAGES|length }}" name="images[{{ ITEM_IMAGES|length }}]" type="text" value="" readonly>
{% endspaceless %}
</dd>
<dd class="aps-ajax">
<button class="aps-button-blue" id="add_image_row" type="button">
<i class="icon fa-plus fa-fw" aria-hidden="true"></i>
<span class="sr-only">{{ lang('ADD') }}</span>
</button>
</dd>
</dl>
<dl>
<dt><label for="related_enabled">{{ lang('ACP_ASS_ITEM_RELATED_ENABLED') ~ lang('COLON') }}</label></dt>
<dd>
<label>
<input class="radio aps-bool" id="related_enabled" name="related_enabled" type="radio" value="1"{{ ITEM_RELATED_ENABLED ? ' checked' }}>
<span class="aps-button-green">{{ lang('ENABLED') }}</span>
</label>
<label>
<input class="radio aps-bool" name="related_enabled" type="radio" value="0"{{ not ITEM_RELATED_ENABLED ? ' checked' }}>
<span class="aps-button-red">{{ lang('DISABLED') }}</span>
</label>
</dd>
</dl>
<dl>
<dt><label for="related_items">{{ lang('ACP_ASS_ITEM_RELATED_ITEMS') ~ lang('COLON') }}</label></dt>
<dd>
<select class="ass-width-90p ass-vertical-resize" id="related_items" name="related_items[]" multiple data-studio-select="{{ ITEM_RELATED_ITEMS|join(',') }}" data-language="{{ user.data.user_lang }}" data-maximum-selection-length="8">
{% for category in categories %}
<optgroup label="{{ category.TITLE }}" {% if category.S_INACTIVE %} class="icon-red" title="{{ lang('ASS_CATEGORY_INACTIVE') }}"{% endif %}>
{% for item in category.items if not item.S_INVENTORY %}
<option value="{{ item.ID }}"{{ item.S_SELECTED ? ' selected' }}{% if item.S_INACTIVE %} class="sep icon-red" title="{{ lang('ASS_ITEM_INACTIVE') }}"{% endif %}>{{ item.TITLE }}</option>
{% endfor %}
</optgroup>
{% endfor %}
</select>
</dd>
</dl>
</fieldset>
{% if S_ASS_EDIT %}
<div class="clearfix">
<fieldset class="column1">
<dl>
<dt><label for="dates">{{ lang('ASS_ITEM_CREATE_TIME') ~ lang('COLON') }}</label></dt><dd>{{ user.format_date(ITEM_CREATE_TIME) }}</dd>
<dt><strong>{{ lang('ASS_ITEM_EDIT_TIME') ~ lang('COLON') }}</strong></dt><dd>{{ ITEM_EDIT_TIME ? user.format_date(ITEM_EDIT_TIME) : lang('NEVER') }}</dd>
<dd>&nbsp;</dd>
</dl>
</fieldset>
<fieldset class="column2">
<dl>
<dt><label for="states">{{ lang('ASS_ON_SALE') ~ lang('COLON') }}</label></dt><dd><i class="icon fa-{{ ITEM_SALE ? 'check icon-green' : 'times icon-red' }} fa-fw" aria-hidden="true"></i></dd>
<dt><strong>{{ lang('ASS_FEATURED') ~ lang('COLON') }}</strong></dt><dd><i class="icon fa-{{ ITEM_FEATURED ? 'check icon-green' : 'times icon-red' }} fa-fw" aria-hidden="true"></i></dd>
<dt><strong>{{ lang('ACP_ASS_AVAILABLE') ~ lang('COLON') }}</strong></dt><dd><i class="icon fa-{{ ITEM_AVAILABLE ? 'check icon-green' : 'times icon-red' }} fa-fw" aria-hidden="true"></i></dd>
</dl>
</fieldset>
</div>
<div class="clearfix">
<fieldset class="column1">
<dl>
<dt><label for="stock_info">{{ lang('ASS_STOCK_INITIAL') ~ lang('COLON') }}</label></dt><dd>{{ not ITEM_STOCK_UNLIMITED ? ITEM_STOCK_INITIAL : lang('ASS_UNLIMITED') }}</dd>
<dt><strong>{{ lang('ASS_STOCK_CURRENT') ~ lang('COLON') }}</strong></dt><dd>{{ not ITEM_STOCK_UNLIMITED ? ITEM_STOCK : lang('ASS_UNLIMITED') }}</dd>
<dt><strong>{{ lang('ASS_PURCHASES') ~ lang('COLON') }}</strong></dt><dd>{{ ITEM_PURCHASES }}</dd>
</dl>
</fieldset>
<fieldset class="column2">
<dl>
<dt><label for="sale_info">{{ lang('ASS_SALE_PRICE') ~ lang('COLON') }}</label></dt><dd>{{ aps_display(ITEM_SALE_PRICE) }}</dd>
<dt><strong>{{ lang('ASS_SALE_DISCOUNT') ~ lang('COLON') }}</strong></dt><dd>{{ aps_display(ITEM_SALE_DIFF) }}</dd>
<dt><strong>{{ lang('ASS_SALE_PERCENTAGE') ~ lang('COLON') }}</strong></dt><dd>-{{ ITEM_SALE_PCT }}%</dd>
</dl>
</fieldset>
</div>
{% endif %}

View File

@@ -0,0 +1,208 @@
{% include 'overall_header.html' %}
{% INCLUDECSS '@phpbbstudio_aps/css/aps_form.css' %}
{% INCLUDECSS '@phpbbstudio_aps/css/aps_common.css' %}
{% INCLUDECSS '@phpbbstudio_ass/css/ass_common.css' %}
{% INCLUDEJS '@phpbbstudio_aps/js/jquery-ui-sortable.min.js' %}
{% INCLUDEJS '@phpbbstudio_ass/js/ass_common.js' %}
{% set mode = S_ITEMS ? 'ITEMS' : 'CATEGORIES' %}
{% set type = S_ITEMS ? 'ITEM' : 'CATEGORY' %}
<a class="pull-right" href="{{ U_BACK }}">
<i class="icon fa-angle-double-left fa-fw" aria-hidden="true"></i>
<span>{{ lang('BACK') }}</span>
</a>
<h1>{{ lang('ACP_ASS_SYSTEM') }} &bull; {{ lang('ACP_ASS_' ~ mode) }}</h1>
<p>{{ lang('ACP_ASS_' ~ mode ~ '_EXPLAIN') }}</p>
{% if S_ASS_ADD or S_ASS_EDIT %}
<form class="aps-form" id="add_edit_{{ mode|lower }}" name="add_edit_{{ mode|lower }}" method="post" action="{{ U_ACTION }}">
{% INCLUDECSS '@phpbbstudio_aps/css/aps_iconpicker.css' %}
{% INCLUDECSS '@phpbbstudio_aps/css/fontawesome-iconpicker.min.css' %}
{% INCLUDECSS '@phpbbstudio_ass/css/daterangepicker.css' %}
{% INCLUDEJS '@phpbbstudio_aps/js/fontawesome-iconpicker.min.js' %}
{% INCLUDEJS '@phpbbstudio_ass/js/moment.min.js' %}
{% INCLUDEJS '@phpbbstudio_ass/js/daterangepicker.js' %}
<script>
{# Used by editor.js #}
let form_name = 'add_edit_{{ mode|lower }}',
text_name = 'desc';
</script>
{{ include('@phpbbstudio_ass/ass_errors.html', {ERRORS: ASS_ERRORS}) }}
{% if ITEM_CONFLICT %}
<fieldset>
<div class="warningbox">
<h3 class="ass-mar">{{ lang('ACP_ASS_CONFLICT') }}</h3>
<p class="ass-no-mar">{{ lang('ACP_ASS_CONFLICT_DESC', U_ITEM_ERROR_LOG, lang('ACP_ASS_SETTINGS_TYPE')) }}</p>
</div>
<div class="centered-text ass-actions">
<a class="aps-button-green" href="{{ U_ITEM_RESOLVE }}" data-ajax="shop_resolve">
<i class="icon fa-check fa-fw" aria-hidden="true"></i>
<strong>{{ lang('ACP_ASS_ITEM_RESOLVE') }}</strong>
</a>
</div>
</fieldset>
{% endif %}
<fieldset>
<legend>{{ lang('GENERAL_SETTINGS') }}</legend>
{% if S_ITEMS %}
<button class="aps-button-green ass-help-start aps-ajax{{ S_ASS_ADD ? ' ass-button-pulse' }}" type="button">
<i class="icon fa-map-signs fa-fw" aria-hidden="true"></i>
<span>{{ lang('ACP_ASS_HELP_TOUR') }}</span>
</button>
{% endif %}
<dl>
<dt><label for="active">{{ lang('ACP_ASS_' ~ type ~ '_ACTIVE') ~ lang('COLON') }}</label></dt>
<dd>
<label>
<input class="radio aps-bool" id="active" name="active" type="radio" value="1"{{ attribute(_context, type ~ '_ACTIVE') ? ' checked' }}>
<span class="aps-button-green">{{ lang('YES') }}</span>
</label>
<label>
<input class="radio aps-bool" name="active" type="radio" value="0"{{ not attribute(_context, type ~ '_ACTIVE') ? ' checked' }}>
<span class="aps-button-red">{{ lang('NO') }}</span>
</label>
</dd>
</dl>
<dl>
<dt><label for="title">{{ lang('ACP_ASS_' ~ type ~ '_TITLE') ~ lang('COLON') }}</label></dt>
<dd><input class="medium" id="title" name="title" type="text" value="{{ attribute(_context, type ~ '_TITLE') }}" maxlength="255" required></dd>
</dl>
<dl>
<dt><label for="slug">{{ lang('ACP_ASS_' ~ type ~ '_SLUG') ~ lang('COLON') }}</label></dt>
<dd><input class="medium" id="slug" name="slug" type="text" value="{{ attribute(_context, type ~ '_SLUG') }}" maxlength="255" required></dd>
</dl>
<dl>
<dt><label for="icon">{{ lang('ACP_ASS_' ~ type ~ '_ICON') ~ lang('COLON') }}</label></dt>
<dd><input class="medium aps-icon-picker" id="icon" name="icon" type="text" value="{{ attribute(_context, type ~ '_ICON') }}"><i class="icon fa-fw"></i></dd>
</dl>
<dl>
<dt><label for="desc">{{ lang('ACP_ASS_' ~ type ~ '_DESC') ~ lang('COLON') }}</label></dt>
<dd>
{% include 'acp_posting_buttons.html' %}
<div class="ass-color-palette" data-orientation="h" data-height="12" data-width="calc((100% - 48px) / 25); padding: 0" data-bbcode="true"></div>
<textarea class="inputbox" id="desc" name="desc" rows="5">{{ attribute(_context, type ~ '_DESC') }}</textarea>
</dd>
</dl>
</fieldset>
{% if S_ITEMS %}
{{ include('@phpbbstudio_ass/ass_item_form.html') }}
{% endif %}
<fieldset>
<legend>{{ lang('ACP_SUBMIT_CHANGES') }}</legend>
<p class="submit-buttons">
<input class="button1" id="submit" name="submit" type="submit" value="{{ lang('SUBMIT') }}">&nbsp;
<input class="button2" id="reset" name="reset" type="reset" value="{{ lang('RESET') }}">
{{ S_FORM_TOKEN }}
</p>
</fieldset>
</form>
{% else %}
<form class="aps-form" action="{{ U_ACTION }}">
<fieldset class="panel">
{% set rowset = S_ITEMS ? ass_items : ass_categories %}
<table class="table1 forums zebra-table responsive">
<thead>
<tr>
<th class="centered-text">{{ lang('ENABLED') }}</th>
<th class="centered-text">{{ lang('ACP_ASS_CONFLICT' ~ (not S_ITEMS ? 'S')) }}</th>
{% if S_ITEMS %}
<th class="centered-text">{{ lang('ACP_ASS_AVAILABLE') }}</th>
{% endif %}
<th class="centered-text">{{ lang('ACP_ASS_' ~ type ~ '_ICON') }}</th>
<th class="name">{{ lang('ACP_ASS_' ~ type ~ '_TITLE') }}</th>
<th class="centered-text">{{ lang('ACP_ASS_' ~ type ~ '_SLUG') }}</th>
<th class="centered-text">{{ lang('ACTIONS') }}</th>
</tr>
</thead>
<tbody data-studio-sortable="true">
{% for row in rowset %}
<tr data-id="{{ row.ID }}">
<td class="actions {{ row.S_ACTIVE ? 'yes' : 'never' }}" title="{{ lang(row.S_ACTIVE ? 'ENABLED' : 'DISABLED') }}">
<i class="icon fa-fw {{ row.S_ACTIVE ? 'fa-check icon-green' : 'fa-times icon-red' }}" aria-hidden="true"></i>
</td>
<td class="actions {{ row.CONFLICT ? 'never' : 'yes' }}">
<i class="icon fa-fw {{ row.CONFLICT ? 'fa-exclamation icon-red' : 'fa-check icon-green' }}" aria-hidden="true"></i>
</td>
{% if S_ITEMS %}
<td class="actions {{ row.S_AVAILABLE ? 'yes' : 'never' }}" title="{{ lang(row.S_AVAILABLE ? 'ENABLED' : 'DISABLED') }}">
<i class="icon fa-fw {{ row.S_AVAILABLE ? 'fa-check icon-green' : 'fa-times icon-red' }}" aria-hidden="true"></i>
</td>
{% endif %}
<td class="actions"{% if row.ICON %} title="{{ row.ICON }}"{% endif %}>
{% if row.ICON %}
<i class="icon {{ row.ICON }} fa-fw" aria-hidden="true"></i>
{% else %}
-
{% endif %}
</td>
<td>
<a href="{{ S_ITEMS ? row.U_EDIT : row.U_VIEW }}">
<strong>{{ row.TITLE }}</strong>
</a>
</td>
<td>
{{ row.SLUG }}
</td>
<td class="actions{{ row.S_AUTH ? ' ass-actions' }}">
{% spaceless %}
{% if row.S_AUTH %}
<a class="aps-button-green" href="{{ row.U_EDIT }}" title="{{ lang('EDIT') }}">
<i class="icon fa-pencil fa-fw" aria-hidden="true"></i>
<span class="sr-only">{{ lang('EDIT') }}</span>
</a>
&nbsp;
{% if S_ITEMS %}
<a class="aps-button-blue" href="{{ row.U_COPY }}" title="{{ lang('ACP_ASS_COPY') }}">
<i class="icon fa-clipboard fa-fw" aria-hidden="true"></i>
<span class="sr-only">{{ lang('ACP_ASS_COPY') }}</span>
</a>
&nbsp;
{% endif %}
<a class="aps-button-red" href="{{ row.U_DELETE }}" title="{{ lang('DELETE') }}" data-ajax="row_delete">
<i class="icon fa-trash fa-fw" aria-hidden="true"></i>
<span class="sr-only">{{ lang('DELETE') }}</span>
</a>
&nbsp;
{% endif %}
<span class="aps-button-blue{{ not row.S_AUTH ? ' ass-mar-right-half pull-right' }}" title="{{ lang('MOVE') }}">
<i class="icon fa-arrows-v fa-fw" aria-hidden="true"></i>
<span class="sr-only">{{ lang('MOVE') }}</span>
</span>
{% endspaceless %}
</td>
</tr>
{% else %}
<tr>
<td class="centered-text" colspan="5">{{ lang('ASS_' ~ mode ~ '_NONE') }}</td>
</tr>
{% endfor %}
</tbody>
</table>
<hr />
<fieldset class="quick">
<a class="aps-button-green" href="{{ U_ASS_ADD }}">{{ lang('ADD') }}</a>
</fieldset>
</fieldset>
</form>
{% endif %}
{% include 'overall_footer.html' %}

View File

@@ -0,0 +1,113 @@
{% include 'overall_header.html' %}
{% INCLUDECSS '@phpbbstudio_aps/css/aps_form.css' %}
{% INCLUDECSS '@phpbbstudio_aps/css/aps_common.css' %}
{% INCLUDECSS '@phpbbstudio_ass/css/ass_common.css' %}
<h1>{{ PAGE_TITLE }}</h1>
<p>{{ lang('ACP_ASS_LOGS_EXPLAIN') }}</p>
<form id="ass_logs" name="ass_logs" method="post" action="{{ U_ACTION }}">
<div class="pagination top-pagination">
{% if pagination %}
{% include 'pagination.html' %}
&bull;
{% endif %}
{{ TOTAL_LOGS }}
</div>
<table class="table1 zebra-table fixed-width-table">
<thead>
<tr>
<th class="aps-logs-user">{{ lang('USERNAME') }}</th>
<th class="aps-logs-time">{{ lang('TIME') }}</th>
<th>{{ lang('ACTION') }}</th>
<th>{{ lang('ASS_ITEM_TITLE') }}</th>
<th class="aps-logs-points centered-text">{{ lang('ASS_ITEM_PRICE') }}</th>
<th class="aps-logs-mark actions centered-text">{{ lang('MARK') }}</th>
</tr>
</thead>
<tbody>
{% for log in ass_logs %}
<tr>
<td>{{ log.USER }}{% if not log.S_SELF and log.REPORTEE %}<br>&raquo; {{ lang('FROM') ~ ' ' ~ log.REPORTEE }}{% endif %}</td>
<td>{{ log.LOG_TIME }}</td>
<td>
{% if log.S_PURCHASE %}
{% if log.RECIPIENT %}
<span>{{ lang('ASS_LOG_ITEM_GIFTED', log.RECIPIENT) }}</span>
{% else %}
<span>{{ lang('ASS_LOG_ITEM_PURCHASED') }}</span>
{% endif %}
{% else %}
<span>{{ lang('ASS_LOG_ITEM_USED') ~ lang('COLON') }}</span> {{ log.LOG_ACTION }}
{% endif %}
</td>
<td>
<span>{{ log.CATEGORY_TITLE }}</span>
<i class="icon fa-angle-right fa-fw icon-aps-blue" aria-hidden="true"></i>
<strong>{{ log.ITEM_TITLE }}</strong>
</td>
<td class="aps-logs-points centered-text">{{ aps_display(log.POINTS_SUM, false) }}</td>
<td class="aps-logs-mark actions"><label for="mark_{{ log.LOG_ID }}"><input class="checkbox" id="mark_{{ log.LOG_ID }}" name="mark[]" type="checkbox" title="{{ lang('MARK') }}" value="{{ log.LOG_ID }}" /></label></td>
</tr>
{% else %}
<tr>
<td colspan="7">
<div class="errorbox">
<p>{{ lang('NO_ENTRIES') }}</p>
</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="pagination">
{% if pagination %}
{% include 'pagination.html' %}
&bull;
{% endif %}
{{ TOTAL_LOGS }}
</div>
<fieldset class="display-options">
<label>
{{ lang('DISPLAY') ~ lang('COLON') }}
<select name="display">
{% for value, option in SORT_DISPLAY_ARRAY %}
<option value="{{ value }}"{{ value == SORT_DISPLAY ? ' selected' }}>{{ lang(option.title) }}</option>
{% endfor %}
</select>
</label>
<label>
{{ lang('SORT_BY') ~ lang('COLON') }}
<select name="sort">
{% for value, option in SORT_SORT_ARRAY %}
<option value="{{ value }}"{{ value == SORT_SORT ? ' selected' }}>{{ lang(option.title) }}</option>
{% endfor %}
</select>
</label>
<label>
{{ lang('SORT_DIRECTION') ~ lang('COLON') }}
<select name="direction">
{% for value, option in SORT_DIR_ARRAY %}
<option value="{{ value }}"{{ value == SORT_DIR ? ' selected' }}>{{ lang(option.title) }}</option>
{% endfor %}
</select>
</label>
<input class="button2" type="submit" value="{{ lang('GO') }}">
</fieldset>
<hr>
<fieldset class="quick">
<input class="button2" type="submit" name="del_all" value="{{ lang('DELETE_ALL') }}" />&nbsp;
<input class="button2" type="submit" name="del_marked" value="{{ lang('DELETE_MARKED') }}" /><br />
<p class="small"><a href="#" onclick="marklist('ass_logs', 'mark', true); return false;">{{ lang('MARK_ALL') }}</a> &bull; <a href="#" onclick="marklist('ass_logs', 'mark', false); return false;">{{ lang('UNMARK_ALL') }}</a></p>
</fieldset>
</form>
{% include 'overall_footer.html' %}

View File

@@ -0,0 +1,440 @@
{% include 'overall_header.html' %}
{% INCLUDECSS '@phpbbstudio_aps/css/aps_form.css' %}
{% INCLUDECSS '@phpbbstudio_aps/css/aps_common.css' %}
{% INCLUDECSS '@phpbbstudio_ass/css/ass_common.css' %}
<h1>{{ PAGE_TITLE }}</h1>
<p>{{ lang('ACP_ASS_OVERVIEW_EXPLAIN') }}</p>
<div class="ass-overview">
<table class="table1 two-columns no-header responsive show-header ass-overview-50" data-no-responsive-header="true">
<colgroup><col class="col1"><col class="col2"><col class="col1"><col class="col2">
</colgroup>
<thead>
<tr>
<th>{{ lang('STATISTIC') }}</th>
<th>{{ lang('VALUE') }}</th>
<th>{{ lang('STATISTIC') }}</th>
<th>{{ lang('VALUE') }}</th>
</tr>
</thead>
<tbody>
<tr>
<td class="col1">{{ lang('ACP_ASS_NUMBER_ITEMS') ~ lang('COLON') }}</td>
<td class="col2"><strong>{{ COUNTS['items'] }}</strong></td>
<td class="col1">{{ lang('ACP_ASS_NUMBER_CONFLICTS') ~ lang('COLON') }}</td>
<td class="col2{{ COUNTS['errors'] ? ' never' }}"><strong>{{ COUNTS['errors'] }}</strong></td>
</tr>
<tr>
<td class="col1">{{ lang('ACP_ASS_NUMBER_SALE') ~ lang('COLON') }}</td>
<td class="col2"><strong>{{ COUNTS['sale'] }}</strong></td>
<td class="col1">{{ lang('ACP_ASS_NUMBER_SPENT', aps_name()) ~ lang('COLON') }}</td>
<td class="col2"><strong>{{ aps_display(COUNTS['spent'], false) }}</strong></td>
</tr>
<tr>
<td class="col1">{{ lang('ACP_ASS_NUMBER_FEATURED') ~ lang('COLON') }}</td>
<td class="col2"><strong>{{ COUNTS['featured'] }}</strong></td>
<td class="col1">{{ lang('ACP_ASS_SHOP_ENABLED') ~ lang('COLON') }}</td>
<td class="col2"><i class="icon {{ SHOP_ENABLED ? 'fa-check icon-green' : 'fa-times icon-red' }} fa-fw" aria-hidden="true"></i></td>
</tr>
<tr>
<td class="col1">{{ lang('ACP_ASS_NUMBER_CATEGORIES') ~ lang('COLON') }}</td>
<td class="col2"><strong>{{ COUNTS['categories'] }}</strong></td>
<td class="col1">{{ lang('ACP_ASS_SHOP_ACTIVE') ~ lang('COLON') }}</td>
<td class="col2"><i class="icon {{ SHOP_ACTIVE ? 'fa-check icon-green' : 'fa-times icon-red' }} fa-fw" aria-hidden="true"></i></td>
</tr>
<tr>
<td class="col1">{{ lang('ACP_ASS_NUMBER_PURCHASES') ~ lang('COLON') }}</td>
<td class="col2"><strong>{{ COUNTS['purchases'] }}</strong></td>
<td class="col1">{{ lang('ACP_ASS_GIFTING_ENABLED') ~ lang('COLON') }}</td>
<td class="col2"><i class="icon {{ GIFTING_ENABLED ? 'fa-check icon-green' : 'fa-times icon-red' }} fa-fw" aria-hidden="true"></i></td>
</tr>
</tbody>
</table>
<fieldset class="ass-no-mar ass-overview-50">
<legend>{{ lang('ACP_ASS_NOTES') }}</legend>
<form class="aps-form" method="post" action="{{ U_ACTION }}">
{% if S_NOTES %}
<textarea class="full" name="notes" placeholder="{{ lang('EDIT') }}">{{ NOTES_EDIT }}</textarea>
{% else %}
<div class="pull-right ass-mar">
<a class="aps-button-green" href="{{ U_NOTES }}" title="{{ lang('EDIT') }}">{{ lang('EDIT') }}</a>
</div>
<div>
{% if NOTES %}
{{ NOTES }}
{% else %}
<em>{{ lang('ACP_ASS_NOTES_NO') ~ lang('ELLIPSIS') }}</em>
{% endif %}
</div>
{% endif %}
{% if S_NOTES %}
<fieldset class="submit-buttons">
<input name="action" type="hidden" value="notes">
<input name="submit" type="submit" value="{{ lang('SUBMIT') }}">
<a class="aps-button-red" href="{{ U_ACTION }}" title="{{ lang('CANCEL') }}">{{ lang('CANCEL') }}</a>
</fieldset>
{% endif %}
</form>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_PANEL_FEATURED') }}</legend>
<ul class="ass-overview-list ass-no-mar">
{% for item in featured %}
<li class="ass-overview-flex">
<div class="ass-overview-flex-small">
{% if item.BACKGROUND_SRC %}
<img src="{{ item.BACKGROUND_SRC }}" alt="{{ item.TITLE }}" />
{% else %}
<i class="icon {{ item.ICON ?: NO_IMAGE_ICON }} fa-3x icon-gray" aria-hidden="true"></i>
{% endif %}
</div>
<div class="ass-overview-flex-auto">
<div>
<strong class="icon-black">{{ item.TITLE }}</strong><br />
<em>
<i class="icon fa-calendar-times-o fa-fw" aria-hidden="true"></i>
{{ user.format_date(item.FEATURED_UNTIL_UNIX) }}
</em>
</div>
</div>
</li>
{% else %}
<li class="overview-flex">
<div class="ass-overview-flex-auto centered-text ass-overview-flex-full-height">
<strong class="error">{{ lang('ACP_ASS_OVERVIEW_FEATURED_NO') }}</strong>
</div>
</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_OVERVIEW_FEATURED_UPCOMING') }}</legend>
<ul class="ass-overview-list ass-no-mar">
{% for item in featured_coming %}
<li class="ass-overview-flex">
<div class="ass-overview-flex-small">
{% if item.BACKGROUND_SRC %}
<img src="{{ item.BACKGROUND_SRC }}" alt="{{ item.TITLE }}" />
{% else %}
<i class="icon {{ item.ICON ?: NO_IMAGE_ICON }} fa-3x icon-gray" aria-hidden="true"></i>
{% endif %}
</div>
<div class="ass-overview-flex-auto">
<div>
<strong class="icon-black">{{ item.TITLE }}</strong><br />
<em>
<i class="icon fa-calendar-check-o fa-fw" aria-hidden="true"></i>
{{ user.format_date(item.FEATURED_START_UNIX) }}
</em>
</div>
</div>
</li>
{% else %}
<li class="overview-flex">
<div class="ass-overview-flex-auto centered-text ass-overview-flex-full-height">
<strong class="error">{{ lang('ACP_ASS_OVERVIEW_FEATURED_UPCOMING_NO') }}</strong>
</div>
</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_PANEL_SALE') }}</legend>
<ul class="ass-overview-list ass-no-mar">
{% for item in sale %}
<li class="ass-overview-flex">
<div class="ass-overview-flex-small">
{% if item.BACKGROUND_SRC %}
<img src="{{ item.BACKGROUND_SRC }}" alt="{{ item.TITLE }}" />
{% else %}
<i class="icon {{ item.ICON ?: NO_IMAGE_ICON }} fa-3x icon-gray" aria-hidden="true"></i>
{% endif %}
</div>
<div class="ass-overview-flex-auto">
<div>
<strong class="icon-black">{{ item.TITLE }}</strong><br />
<em>
<i class="icon fa-calendar-times-o fa-fw" aria-hidden="true"></i>
{{ user.format_date(item.SALE_UNTIL_UNIX) }}
</em>
</div>
</div>
</li>
{% else %}
<li class="overview-flex">
<div class="ass-overview-flex-auto centered-text ass-overview-flex-full-height">
<strong class="error">{{ lang('ACP_ASS_OVERVIEW_SALE_NO') }}</strong>
</div>
</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_OVERVIEW_SALE_UPCOMING') }}</legend>
<ul class="ass-overview-list ass-no-mar">
{% for item in sale_coming %}
<li class="ass-overview-flex">
<div class="ass-overview-flex-small">
{% if item.BACKGROUND_SRC %}
<img src="{{ item.BACKGROUND_SRC }}" alt="{{ item.TITLE }}" />
{% else %}
<i class="icon {{ item.ICON ?: NO_IMAGE_ICON }} fa-3x icon-gray" aria-hidden="true"></i>
{% endif %}
</div>
<div class="ass-overview-flex-auto">
<div>
<strong class="icon-black">{{ item.TITLE }}</strong><br />
<em>
<i class="icon fa-calendar-check-o fa-fw" aria-hidden="true"></i>
{{ user.format_date(item.SALE_START_UNIX) }}
</em>
</div>
</div>
</li>
{% else %}
<li class="overview-flex">
<div class="ass-overview-flex-auto centered-text ass-overview-flex-full-height">
<strong class="error">{{ lang('ACP_ASS_OVERVIEW_SALE_UPCOMING_NO') }}</strong>
</div>
</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_OVERVIEW_LOW_STOCK') }}</legend>
<ul class="ass-overview-list ass-no-mar">
{% for item in low_stock %}
<li class="ass-overview-flex">
<div class="ass-overview-flex-small">
{% if item.BACKGROUND_SRC %}
<img src="{{ item.BACKGROUND_SRC }}" alt="{{ item.TITLE }}" />
{% else %}
<i class="icon {{ item.ICON ?: NO_IMAGE_ICON }} fa-3x icon-gray" aria-hidden="true"></i>
{% endif %}
</div>
<div class="ass-overview-flex-auto"><strong class="icon-black">{{ item.TITLE }}</strong></div>
<div class="ass-overview-flex-small"><span>{{ item.STOCK }}</span></div>
</li>
{% else %}
<li class="overview-flex">
<div class="ass-overview-flex-auto centered-text ass-overview-flex-full-height">
<strong class="error">{{ lang('ACP_ASS_OVERVIEW_LOW_STOCK_NO') }}</strong>
</div>
</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_OVERVIEW_BIGGEST_GIFTERS') }}</legend>
<ul class="ass-overview-list ass-no-mar">
{% for user in gifters %}
<li class="ass-overview-flex">
<div class="ass-overview-flex-small">
{% if user.AVATAR %}
{{ user.AVATAR }}
{% else %}
<i class="icon fa-user-circle-o fa-4x icon-gray" aria-hidden="true"></i>
{% endif %}
</div>
<div class="ass-overview-flex-auto">{{ user.NAME }}</div>
<div class="ass-overview-flex-small"><span>{{ user.COUNT }}</span></div>
</li>
{% else %}
<li class="overview-flex">
<div class="ass-overview-flex-auto centered-text ass-overview-flex-full-height">
<strong class="error">{{ lang('ACP_ASS_OVERVIEW_BIGGEST_GIFTERS_NO') }}</strong>
</div>
</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_OVERVIEW_BIGGEST_BUYERS') }}</legend>
<ul class="ass-overview-list ass-no-mar">
{% for user in buyers %}
<li class="ass-overview-flex">
<div class="ass-overview-flex-small">
{% if user.AVATAR %}
{{ user.AVATAR }}
{% else %}
<i class="icon fa-user-circle-o fa-4x icon-gray" aria-hidden="true"></i>
{% endif %}
</div>
<div class="ass-overview-flex-auto">{{ user.NAME }}</div>
<div class="ass-overview-flex-small"><span>{{ user.COUNT }}</span></div>
</li>
{% else %}
<li class="overview-flex">
<div class="ass-overview-flex-auto centered-text ass-overview-flex-full-height">
<strong class="error">{{ lang('ACP_ASS_OVERVIEW_BIGGEST_BUYERS_NO') }}</strong>
</div>
</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_OVERVIEW_BIGGEST_SPENDERS') }}</legend>
<ul class="ass-overview-list ass-no-mar">
{% for user in spenders %}
<li class="ass-overview-flex">
<div class="ass-overview-flex-small">
{% if user.AVATAR %}
{{ user.AVATAR }}
{% else %}
<i class="icon fa-user-circle-o fa-4x icon-gray" aria-hidden="true"></i>
{% endif %}
</div>
<div class="ass-overview-flex-auto">{{ user.NAME }}</div>
<div class="ass-overview-flex-small"><span>{{ aps_display(user.COUNT, false) }}</span></div>
</li>
{% else %}
<li class="overview-flex">
<div class="ass-overview-flex-auto centered-text ass-overview-flex-full-height">
<strong class="error">{{ lang('ACP_ASS_OVERVIEW_BIGGEST_SPENDERS_NO') }}</strong>
</div>
</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_OVERVIEW_SELLERS_LOW') }}</legend>
<ul class="ass-overview-list ass-no-mar">
{% for item in low_sellers %}
<li class="ass-overview-flex">
<div class="ass-overview-flex-small">
{% if item.BACKGROUND_SRC %}
<img src="{{ item.BACKGROUND_SRC }}" alt="{{ item.TITLE }}" />
{% else %}
<i class="icon {{ item.ICON ?: NO_IMAGE_ICON }} fa-3x icon-gray" aria-hidden="true"></i>
{% endif %}
</div>
<div class="ass-overview-flex-auto"><strong class="icon-black">{{ item.TITLE }}</strong></div>
<div class="ass-overview-flex-small"><span>{{ item.PURCHASES }}</span></div>
</li>
{% else %}
<li class="overview-flex">
<div class="ass-overview-flex-auto centered-text ass-overview-flex-full-height">
<strong class="error">{{ lang('ACP_ASS_OVERVIEW_SELLERS_LOW_NO') }}</strong>
</div>
</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_OVERVIEW_SELLERS_TOP') }}</legend>
<ul class="ass-overview-list ass-no-mar">
{% for item in top_sellers %}
<li class="ass-overview-flex">
<div class="ass-overview-flex-small">
{% if item.BACKGROUND_SRC %}
<img src="{{ item.BACKGROUND_SRC }}" alt="{{ item.TITLE }}" />
{% else %}
<i class="icon {{ item.ICON ?: NO_IMAGE_ICON }} fa-3x icon-gray" aria-hidden="true"></i>
{% endif %}
</div>
<div class="ass-overview-flex-auto"><strong class="icon-black">{{ item.TITLE }}</strong></div>
<div class="ass-overview-flex-small"><span>{{ item.PURCHASES }}</span></div>
</li>
{% else %}
<li class="overview-flex">
<div class="ass-overview-flex-auto centered-text ass-overview-flex-full-height">
<strong class="error">{{ lang('ACP_ASS_OVERVIEW_SELLERS_TOP_NO') }}</strong>
</div>
</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_OVERVIEW_RECENT_ITEMS') }}</legend>
<ul class="ass-overview-list ass-no-mar">
{% for item in recent %}
<li class="ass-overview-flex">
<div class="ass-overview-flex-small">
{% if item.BACKGROUND_SRC %}
<img src="{{ item.BACKGROUND_SRC }}" alt="{{ item.TITLE }}" />
{% else %}
<i class="icon {{ item.ICON ?: NO_IMAGE_ICON }} fa-3x icon-gray" aria-hidden="true"></i>
{% endif %}
</div>
<div class="ass-overview-flex-auto">
<div>
<strong class="icon-black">{{ item.TITLE }}</strong><br />
<em>
<i class="icon fa-pencil-square-o fa-fw" aria-hidden="true"></i>
{{ user.format_date(item.CREATE_TIME) }}
</em>
</div>
</div>
</li>
{% else %}
<li class="overview-flex">
<div class="ass-overview-flex-auto centered-text ass-overview-flex-full-height">
<strong class="error">{{ lang('ACP_ASS_OVERVIEW_RECENT_ITEMS_NO') }}</strong>
</div>
</li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_OVERVIEW_RECENT_PURCHASES') }}</legend>
<ul class="ass-overview-list ass-no-mar">
{% for item in purchases %}
<li class="ass-overview-flex">
<div class="ass-overview-flex-small">
{% if item.BACKGROUND_SRC %}
<img src="{{ item.BACKGROUND_SRC }}" alt="{{ item.TITLE }}" />
{% else %}
<i class="icon {{ item.ICON ?: NO_IMAGE_ICON }} fa-3x icon-gray" aria-hidden="true"></i>
{% endif %}
</div>
<div class="ass-overview-flex-auto">
<div>
<strong class="icon-black">{{ item.TITLE }}</strong><br />
<em>
<i class="icon {{ aps_config('ass_shop_icon') }} fa-fw" aria-hidden="true"></i>
{{ user.format_date(item.PURCHASE_TIME) }}
</em>
</div>
</div>
</li>
{% else %}
<li class="overview-flex">
<div class="ass-overview-flex-auto centered-text ass-overview-flex-full-height">
<strong class="error">{{ lang('ACP_ASS_OVERVIEW_RECENT_PURCHASES_NO') }}</strong>
</div>
</li>
{% endfor %}
</ul>
</fieldset>
</div>
{% include 'overall_footer.html' %}

View File

@@ -0,0 +1,350 @@
{% include 'overall_header.html' %}
{% INCLUDECSS '@phpbbstudio_aps/css/aps_form.css' %}
{% INCLUDECSS '@phpbbstudio_aps/css/aps_common.css' %}
{% INCLUDECSS '@phpbbstudio_ass/css/ass_common.css' %}
{% INCLUDECSS '@phpbbstudio_aps/css/aps_iconpicker.css' %}
{% INCLUDECSS '@phpbbstudio_aps/css/fontawesome-iconpicker.min.css' %}
{% INCLUDEJS '@phpbbstudio_aps/js/fontawesome-iconpicker.min.js' %}
{% INCLUDEJS '@phpbbstudio_ass/js/ass_common.js' %}
{% if S_ASS_LOCATIONS %}
{% include '@phpbbstudio_aps/aps_locations.html' %}
{% else %}
<h1>{{ PAGE_TITLE }}</h1>
<p>{{ lang('ACP_ASS_SETTINGS_EXPLAIN') }}</p>
<form class="aps-form" id="shop_settings" name="shop_settings" method="post" action="{{ U_ACTION }}">
{{ include('@phpbbstudio_ass/ass_errors.html') }}
<fieldset>
<legend>{{ lang('GENERAL_SETTINGS') }}</legend>
<dl>
<dt>
<label for="enabled">{{ lang('ACP_ASS_SHOP_ENABLED') ~ lang('COLON') }}</label>
<br><span>{{ lang('ACP_ASS_SHOP_ENABLED_DESC') }}</span>
</dt>
<dd>
<label>
<input class="radio aps-bool" id="enabled" name="enabled" type="radio" value="1"{{ ENABLED ? ' checked' }}>
<span class="aps-button-green">{{ lang('YES') }}</span>
</label>
<label>
<input class="radio aps-bool" name="enabled" type="radio" value="0"{{ not ENABLED ? ' checked' }}>
<span class="aps-button-red">{{ lang('NO') }}</span>
</label>
</dd>
</dl>
<dl>
<dt>
<label for="active">{{ lang('ACP_ASS_SHOP_ACTIVE') ~ lang('COLON') }}</label>
<br><span>{{ lang('ACP_ASS_SHOP_ACTIVE_DESC') }}</span>
</dt>
<dd>
<label>
<input class="radio aps-bool" id="active" name="active" type="radio" value="1"{{ ACTIVE ? ' checked' }}>
<span class="aps-button-green">{{ lang('YES') }}</span>
</label>
<label>
<input class="radio aps-bool" name="active" type="radio" value="0"{{ not ACTIVE ? ' checked' }}>
<span class="aps-button-red">{{ lang('NO') }}</span>
</label>
</dd>
</dl>
<dl>
<dt>
<label for="inactive_desc">{{ lang('ACP_ASS_SHOP_INACTIVE_DESC') ~ lang('COLON') }}</label>
<br><span>{{ lang('ACP_ASS_SHOP_INACTIVE_DESC_DESC') }}</span>
</dt>
<dd>
<script>
{# Used by editor.js #}
let form_name = 'shop_settings',
text_name = 'inactive_desc';
</script>
{% include 'acp_posting_buttons.html' %}
<textarea class="inputbox" id="inactive_desc" name="inactive_desc" rows="5">{{ INACTIVE_DESC }}</textarea></dd>
</dl>
<dl>
<dt>
<strong>{{ lang('ACP_ASS_LOCATIONS') }}</strong>
<br><span>{{ lang('ACP_ASS_LOCATIONS_DESC') }}</span>
</dt>
<dd>
<label>
<a class="aps-button-green" href="{{ U_LOCATIONS }}">
{{ lang('RUN') }}
</a>
</label>
</dd>
</dl>
<dl>
<dt><label for="shop_icon">{{ lang('ACP_ASS_SHOP_ICON') ~ lang('COLON') }}</label></dt>
<dd>
<input class="aps-icon-picker" id="shop_icon" name="shop_icon" type="text" value="{{ SHOP_ICON }}" required><i class="icon fa-fw"></i>
</dd>
</dl>
<dl>
<dt><label for="inventory_icon">{{ lang('ACP_ASS_INVENTORY_ICON') ~ lang('COLON') }}</label></dt>
<dd>
<input class="aps-icon-picker" id="inventory_icon" name="inventory_icon" type="text" value="{{ INVENTORY_ICON }}" required><i class="icon fa-fw"></i>
</dd>
</dl>
<dl>
<dt><label for="no_image_icon">{{ lang('ACP_ASS_NO_IMAGE_ICON') ~ lang('COLON') }}</label></dt>
<dd>
<input class="aps-icon-picker" id="no_image_icon" name="no_image_icon" type="text" value="{{ NO_IMAGE_ICON }}" required><i class="icon fa-fw"></i>
</dd>
</dl>
<dl>
<dt><label for="gift_icon">{{ lang('ACP_ASS_GIFT_ICON') ~ lang('COLON') }}</label></dt>
<dd>
<input class="aps-icon-picker" id="gift_icon" name="gift_icon" type="text" value="{{ GIFT_ICON }}" required><i class="icon fa-fw"></i>
</dd>
</dl>
<dl>
<dt><label for="gift_enabled">{{ lang('ACP_ASS_GIFT_ITEMS') ~ lang('COLON') }}</label></dt>
<dd>
<label>
<input class="radio aps-bool" id="gift_enabled" name="gift_enabled" type="radio" value="1"{{ GIFT_ENABLED ? ' checked' }}>
<span class="aps-button-green">{{ lang('ENABLED') }}</span>
</label>
<label>
<input class="radio aps-bool" name="gift_enabled" type="radio" value="0"{{ not GIFT_ENABLED ? ' checked' }}>
<span class="aps-button-red">{{ lang('DISABLED') }}</span>
</label>
</dd>
</dl>
<dl>
<dt><label for="deactivate_conflicts">{{ lang('ACP_ASS_CONFLICTS_DEACTIVATE') ~ lang('COLON') }}</label></dt>
<dd>
<label>
<input class="radio aps-bool" id="deactivate_conflicts" name="deactivate_conflicts" type="radio" value="1"{{ DEACTIVATE_CONFLICTS ? ' checked' }}>
<span class="aps-button-green">{{ lang('ENABLED') }}</span>
</label>
<label>
<input class="radio aps-bool" name="deactivate_conflicts" type="radio" value="0"{{ not DEACTIVATE_CONFLICTS ? ' checked' }}>
<span class="aps-button-red">{{ lang('DISABLED') }}</span>
</label>
</dd>
</dl>
<dl>
<dt>
<label for="purge_cache">{{ lang('ACP_ASS_PURGE_CACHE') ~ lang('COLON') }}</label>
<br><span>{{ lang('ACP_ASS_PURGE_CACHE_DESC') }}</span>
</dt>
<dd>
<label>
<input class="radio aps-bool" id="purge_cache" name="purge_cache" type="radio" value="1"{{ PURGE_CACHE ? ' checked' }}>
<span class="aps-button-green">{{ lang('ENABLED') }}</span>
</label>
<label>
<input class="radio aps-bool" name="purge_cache" type="radio" value="0"{{ not PURGE_CACHE ? ' checked' }}>
<span class="aps-button-red">{{ lang('DISABLED') }}</span>
</label>
</dd>
</dl>
<dl>
<dt><label for="items_per_page">{{ lang('ACP_ASS_ITEMS_PER_PAGE') ~ lang('COLON') }}</label></dt>
<dd>
<input class="shop-slider" id="items_per_page" name="items_per_page" type="range" value="{{ ITEMS_PER_PAGE }}" min="2" max="60" step="2" required>
<output>{{ ITEMS_PER_PAGE }}</output>
</dd>
</dl>
<dl>
<dt><label for="logs_per_page">{{ lang('ACP_ASS_LOGS_PER_PAGE') ~ lang('COLON') }}</label></dt>
<dd>
<input class="shop-slider" id="logs_per_page" name="logs_per_page" type="range" value="{{ LOGS_PER_PAGE }}" min="2" max="60" step="1" required>
<output>{{ LOGS_PER_PAGE }}</output>
</dd>
</dl>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_SETTINGS_SHOP') }}</legend>
{% for row in SHOP_BLOCKS|batch(2) %}
{% for type, data in row %}
<fieldset class="column{{ loop.index }}" data-studio-panel="true">
<h5>{{ lang('ACP_ASS_PANEL_' ~ type|upper) }}</h5>
<hr />
<i class="icon {{ ICON[type] }} icon-{{ ICON_COLOUR[type] }} shop-panel-icon shop-panel-icon-{{ BANNER_COLOUR[type] }}{{ BANNER_SIZE[type] ? ' shop-panel-icon-' ~ BANNER_SIZE[type] }}{{ not ICON[type] ? ' hidden' }}"></i>
<dl>
<dt><label for="{{ type }}_banner_size">{{ lang('ACP_ASS_PANEL_BANNER_SIZE') ~ lang('COLON') }}</label></dt>
<dd>
<select id="{{ type }}_banner_size" name="{{ type }}_banner_size">
<option value=""{{ not BANNER_SIZE[type] ? ' selected' }}>{{ lang('ACP_ASS_PANEL_BANNER_SIZE_NORMAL') }}</option>
{% for size in SHOP_BANNER_SIZES %}
<option value="{{ size }}"{{ size == BANNER_SIZE[type] ? ' selected' }}>{{ lang('ACP_ASS_PANEL_BANNER_SIZE_' ~ size|upper) }}</option>
{% endfor %}
</select>
</dd>
</dl>
<dl>
<dt><label for="{{ type }}_banner_colour">{{ lang('ACP_ASS_PANEL_BANNER_COLOUR') ~ lang('COLON') }}</label></dt>
<dd>
<select id="{{ type }}_banner_colour" name="{{ type }}_banner_colour">
{% for colour in SHOP_BANNER_COLOURS %}
<option value="{{ colour }}"{{ colour == BANNER_COLOUR[type] ? ' selected' }}>{{ colour|capitalize }}</option>
{% endfor %}
</select>
</dd>
</dl>
<dl>
<dt><label for="{{ type }}_icon_colour">{{ lang('ACP_ASS_PANEL_ICON_COLOUR') ~ lang('COLON') }}</label></dt>
<dd>
<select id="{{ type }}_icon_colour" name="{{ type }}_icon_colour">
{% for colour in SHOP_ICON_COLOURS %}
<option value="{{ colour }}"{{ colour == ICON_COLOUR[type] ? ' selected' }}>{{ colour|capitalize }}</option>
{% endfor %}
</select>
</dd>
</dl>
<dl>
<dt><label for="{{ type }}_icon">{{ lang('ACP_ASS_PANEL_ICON') ~ lang('COLON') }}</label></dt>
<dd>
<input class="aps-icon-picker" id="{{ type }}_icon" name="{{ type }}_icon" type="text" value="{{ ICON[type] }}"><i class="icon fa-fw"></i>
</dd>
</dl>
<dl>
<dt><label for="{{ type }}_order">{{ lang('ACP_ASS_PANEL_ORDER') ~ lang('COLON') }}</label></dt>
<dd><input id="{{ type }}_order" name="{{ type }}_order" type="number" value="{{ ORDER[type] }}" min="{{ data.order.min }}" max="{{ data.order.max }}" step="1"></dd>
</dl>
<dl>
<dt><label for="{{ type }}_width">{{ lang('ACP_ASS_PANEL_WIDTH') ~ lang('COLON') }}</label></dt>
<dd>
{% if type == 'random' %}
<label>
<input class="radio ass-radio" name="{{ type }}_width" type="radio" value="3"{{ WIDTH[type] == 3 ? ' checked' }}>
<span class="aps-button-blue">25 %</span>
</label>
{% endif %}
<label>
<input class="radio ass-radio" id="{{ type }}_width" name="{{ type }}_width" type="radio" value="4"{{ WIDTH[type] == 4 ? ' checked' }}>
<span class="aps-button-blue">33 %</span>
</label>
{% if type != 'random' %}
<label>
<input class="radio ass-radio" name="{{ type }}_width" type="radio" value="6"{{ WIDTH[type] == 6 ? ' checked' }}>
<span class="aps-button-blue">50 %</span>
</label>
{% endif %}
</dd>
</dl>
<dl>
<dt><label for="{{ type }}_limit">{{ lang('ACP_ASS_PANEL_LIMIT') ~ lang('COLON') }}</label></dt>
<dd>
<input class="shop-slider" id="{{ type }}_limit" name="{{ type }}_limit" type="range" value="{{ LIMIT[type] }}" min="{{ data.limit.min }}" max="{{ data.limit.max }}" step="1" required>
<output>{{ LIMIT[type] }}</output>
</dd>
</dl>
</fieldset>
{% endfor %}
{% endfor %}
</fieldset>
<fieldset>
<legend>{{ lang('ACP_ASS_SETTINGS_CAROUSEL') }}</legend>
<dl>
<dt>
<label for="carousel_arrows">{{ lang('ACP_ASS_CAROUSEL_ARROWS') ~ lang('COLON') }}</label>
<br><span>{{ lang('ACP_ASS_CAROUSEL_ARROWS_DESC') }}</span>
</dt>
<dd>
<label>
<input class="radio aps-bool" id="carousel_arrows" name="carousel_arrows" type="radio" value="1"{{ CAROUSEL_ARROWS ? ' checked' }}>
<span class="aps-button-green">{{ lang('YES') }}</span>
</label>
<label>
<input class="radio aps-bool" name="carousel_arrows" type="radio" value="0"{{ not CAROUSEL_ARROWS ? ' checked' }}>
<span class="aps-button-red">{{ lang('NO') }}</span>
</label>
</dd>
</dl>
<dl>
<dt>
<label for="carousel_dots">{{ lang('ACP_ASS_CAROUSEL_DOTS') ~ lang('COLON') }}</label>
<br><span>{{ lang('ACP_ASS_CAROUSEL_DOTS_DESC') }}</span>
</dt>
<dd>
<label>
<input class="radio aps-bool" id="carousel_dots" name="carousel_dots" type="radio" value="1"{{ CAROUSEL_DOTS ? ' checked' }}>
<span class="aps-button-green">{{ lang('YES') }}</span>
</label>
<label>
<input class="radio aps-bool" name="carousel_dots" type="radio" value="0"{{ not CAROUSEL_DOTS ? ' checked' }}>
<span class="aps-button-red">{{ lang('NO') }}</span>
</label>
</dd>
</dl>
<dl>
<dt>
<label for="carousel_fade">{{ lang('ACP_ASS_CAROUSEL_FADE') ~ lang('COLON') }}</label>
<br><span>{{ lang('ACP_ASS_CAROUSEL_FADE_DESC') }}</span>
</dt>
<dd>
<label>
<input class="radio aps-bool" id="carousel_fade" name="carousel_fade" type="radio" value="1"{{ CAROUSEL_FADE ? ' checked' }}>
<span class="aps-button-green">{{ lang('YES') }}</span>
</label>
<label>
<input class="radio aps-bool" name="carousel_fade" type="radio" value="0"{{ not CAROUSEL_FADE ? ' checked' }}>
<span class="aps-button-red">{{ lang('NO') }}</span>
</label>
</dd>
</dl>
<dl>
<dt>
<label for="carousel_play">{{ lang('ACP_ASS_CAROUSEL_PLAY') ~ lang('COLON') }}</label>
<br><span>{{ lang('ACP_ASS_CAROUSEL_PLAY_DESC') }}</span>
</dt>
<dd>
<label>
<input class="radio aps-bool" id="carousel_play" name="carousel_play" type="radio" value="1"{{ CAROUSEL_PLAY ? ' checked' }}>
<span class="aps-button-green">{{ lang('YES') }}</span>
</label>
<label>
<input class="radio aps-bool" name="carousel_play" type="radio" value="0"{{ not CAROUSEL_PLAY ? ' checked' }}>
<span class="aps-button-red">{{ lang('NO') }}</span>
</label>
</dd>
</dl>
<dl>
<dt><label for="carousel_play_speed">{{ lang('ACP_ASS_CAROUSEL_PLAY_SPEED') ~ lang('COLON') }}</label>
<br><span>{{ lang('ACP_ASS_CAROUSEL_PLAY_SPEED_DESC') }}</span>
</dt>
<dd>
<input class="shop-slider" id="carousel_play_speed" name="carousel_play_speed" type="range" min="1000" max="5000" step="1000" value="{{ CAROUSEL_PLAY_SPEED }}" required>
<output>{{ CAROUSEL_PLAY_SPEED }}</output>
</dd>
</dl>
<dl>
<dt>
<label for="carousel_speed">{{ lang('ACP_ASS_CAROUSEL_SPEED') ~ lang('COLON') }}</label>
<br><span>{{ lang('ACP_ASS_CAROUSEL_SPEED_DESC') }}</span>
</dt>
<dd>
<input class="shop-slider" id="carousel_speed" name="carousel_speed" type="range" min="100" max="2000" step="100" value="{{ CAROUSEL_SPEED }}" required>
<output>{{ CAROUSEL_SPEED }}</output>
</dd>
</dl>
</fieldset>
<fieldset>
<legend>{{ lang('ACP_SUBMIT_CHANGES') }}</legend>
<p class="submit-buttons">
<input class="button1" id="submit" name="submit" type="submit" value="{{ lang('SUBMIT') }}">&nbsp;
<input class="button2" id="reset" name="reset" type="reset" value="{{ lang('RESET') }}">
{{ S_FORM_TOKEN }}
</p>
</fieldset>
</form>
{% endif %}
{% include 'overall_footer.html' %}

View File

@@ -0,0 +1,590 @@
/**
*
* phpBB Studio - Advanced Shop System. An extension for the phpBB Forum Software package.
*
* @copyright (c) 2019, phpBB Studio, https://www.phpbbstudio.com
* @license GNU General Public License, version 2 (GPL-2.0)
*
*/
.name i { font-size: 14px; }
.ass-pointer {
cursor: pointer;
}
.ass-width-200 {
width: 200px;
}
.ass-width-90p {
width: 90%;
}
.ass-vertical-resize {
resize: vertical;
}
.ass-inline {
display: inline-block;
}
.ass-label-fix {
vertical-align: 2px;
padding-right: 0;
}
.ass-actions {
padding: 8px;
}
.ass-no-mar {
margin: 0;
}
.ass-mar {
margin: 8px;
}
.ass-mar-left {
margin-left: 8px;
}
.ass-mar-right {
margin-right: 8px;
}
.ass-mar-right-half {
margin-right: 4px;
}
.ass-mar-side {
margin-right: 8px;
margin-left: 8px;
}
.ass-no-radius-top {
border-top-left-radius: 0 !important;
border-top-right-radius: 0 !important;
}
.ass-no-radius-right {
border-top-right-radius: 0 !important;
border-bottom-right-radius: 0 !important;
}
.ass-no-radius-bottom {
border-bottom-right-radius: 0 !important;
border-bottom-left-radius: 0 !important;
}
.ass-no-radius-left {
border-top-left-radius: 0 !important;
border-bottom-left-radius: 0 !important;
}
.ass-color-palette table {
border-color: #12a3eb;
border-radius: 4px;
min-width: 90%;
max-width: 90%;
margin: 0 0 4px;
padding: 4px;
}
.ass-color-palette a {
width: 100% !important;
}
.ass-radio { display: none; }
.ass-radio:checked + .aps-button-blue,
input[type="button"]:hover {
background: #12a3eb;
border-color: #12a3eb;
color: #ffffff;
}
input[type="button"] {
background-color: #ffffff;
background-image: none;
border: 1px solid #12a3eb;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-transition: border-color ease-in-out 0.15s, -webkit-box-shadow ease-in-out 0.15s;
-o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
}
.ass-input-icon i {
font-size: 14px;
line-height: 1.42857143;
text-align: center;
vertical-align: -1px;
background-color: #f3f3f3;
border: 1px solid #cccccc;
border-right: none;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
color: #555555;
display: inline-block;
width: auto;
min-width: 40px;
height: 34px;
padding: 6px 12px;
}
.ass-input-icon i + input[type="text"],
.ass-input-icon i + input[type="number"] {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.ass-file-select-container {
display: flex;
flex-flow: row wrap;
}
.ass-file-select {
flex: 1 0 210px;
}
.ass-file-select input {
display: none;
}
.ass-file-select input + * {
border: 2px solid transparent;
display: inline-block;
width: 200px;
height: auto;
}
.ass-file-select input:checked + * {
border-color: #12a3eb;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
}
.ass-button-pulse:not(:hover) {
animation: bgPulse 3s linear 3;
}
@keyframes bgPulse {
0% { background-color: #ffffff; }
50% { background-color: #8dcc8d; }
100% { background-color: #ffffff; }
}
/* Panel icons */
.icon-blue { color: #196db5; }
.icon-green { color: #1b9a1b; }
.icon-red { color: #bc2a4d; }
.icon-orange { color: #ff6600; }
.icon-bluegray { color: #536482; }
.icon-gray { color: #777777; }
.icon-lightgray { color: #999999; }
.icon-black { color: #333333; }
.icon-white { color: #ffffff; }
.icon-lighten { color: rgba(255, 255, 255, 0.75); }
.icon-darken { color: rgba(0, 0, 0, 0.5); }
.icon-aqua { color: #18a39b; }
.icon-yellow { color: #f8b739; }
.icon-pink { color: #ed2861; }
.icon-violet { color: #c12680; }
.icon-purple { color: #5d3191; }
.icon-gold { color: #d6af36; }
.icon-silver { color: #a7a7ad; }
.icon-bronze { color: #824a02; }
.shop-panel-icon {
text-align: center;
position: absolute;
top: 0;
right: 16px;
width: 36px;
}
.shop-panel-icon:before {
font-size: 20px;
line-height: 30px;
position: relative;
z-index: 1;
}
.shop-panel-icon-small:before {
font-size: 16px;
line-height: 22px;
}
.shop-panel-icon-tiny:before {
font-size: 13px;
line-height: 18px;
}
.shop-panel-icon:after {
font-family: FontAwesome, sans-serif;
font-size: 48px;
text-shadow: -2px 1px 4px rgba(0, 0, 0, 0.4);
color: #12a3eb;
position: absolute;
top: -4px;
left: 0;
content: "\f02e";
}
.shop-panel-icon-small:after,
.shop-panel-icon-tiny:after {
text-shadow: -1px 1px 3px rgba(0, 0, 0, 0.4);
}
.shop-panel-icon-small { width: 30px; }
.shop-panel-icon-tiny { width: 25px; }
.shop-panel-icon-small:after { font-size: 40px; }
.shop-panel-icon-tiny:after { font-size: 32px; }
.shop-panel-icon-blue:after { color: #12a3eb; }
.shop-panel-icon-red:after { color: #d31141; }
.shop-panel-icon-green:after { color: #28a745; }
.shop-panel-icon-orange:after { color: #f06045; }
.shop-panel-icon-aqua:after { color: #18a39b; }
.shop-panel-icon-yellow:after { color: #f8b739; }
.shop-panel-icon-pink:after { color: #ed2861; }
.shop-panel-icon-violet:after { color: #c12680; }
.shop-panel-icon-purple:after { color: #5d3191; }
.shop-panel-icon-gold:after { color: #d6af36; }
.shop-panel-icon-silver:after { color: #a7a7ad; }
.shop-panel-icon-bronze:after { color: #824a02; }
/* Date picker */
.daterangepicker .calendar-table th {
text-transform: none;
background: #12a3eb;
padding: 0;
}
.daterangepicker .drp-calendar.left .calendar-table th:empty { display: none; }
.daterangepicker .drp-calendar.right .calendar-table th:empty { background: none; }
.daterangepicker .calendar-table td { padding: 0; }
.daterangepicker .calendar-table .active { background: #0076b1; }
/* Slider */
output {
font-weight: bold;
text-align: center;
display: block;
}
.shop-slider {
width: 100%;
margin: 0;
padding: 0;
-webkit-appearance: none;
}
.aps-form [type="range"].shop-slider {
border: none;
margin-top: 4px;
padding: 0;
}
.shop-slider:focus {
outline: none;
}
.shop-slider::-webkit-slider-runnable-track {
background: #ffffff;
border: 1px solid #cccccc;
border-radius: 4px;
box-shadow: 0 0 0 #000000, 0 0 0 #0d0d0d;
width: 100%;
height: 34px;
cursor: pointer;
}
.shop-slider::-webkit-slider-thumb {
background: #12a3eb;
border: 1px solid rgba(0, 118, 177, 0.57);
border-radius: 4px;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5), 0 0 1px rgba(13, 13, 13, 0.5);
width: 24px;
height: 24px;
margin-top: 4px;
cursor: pointer;
-webkit-appearance: none;
}
.shop-slider:focus::-webkit-slider-runnable-track {
background: #ffffff;
}
.shop-slider::-moz-range-track {
background: #ffffff;
border: 1px solid #cccccc;
border-radius: 4px;
width: 100%;
height: 34px;
cursor: pointer;
}
.shop-slider::-moz-range-thumb {
background: #12a3eb;
border: 1px solid rgba(0, 118, 177, 0.57);
border-radius: 4px;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5), 0 0 1px rgba(13, 13, 13, 0.5);
width: 24px;
height: 24px;
cursor: pointer;
}
.shop-slider::-ms-track {
background: transparent;
border-color: transparent;
color: transparent;
width: 100%;
height: 34px;
cursor: pointer;
}
.shop-slider::-ms-fill-lower {
background: #f2f2f2;
border: 1px solid #cccccc;
border-radius: 8px;
}
.shop-slider::-ms-fill-upper {
background: #ffffff;
border: 1px solid #cccccc;
border-radius: 8px;
}
.shop-slider::-ms-thumb {
background: #12a3eb;
border: 1px solid rgba(0, 118, 177, 0.57);
border-radius: 4px;
box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5), 0 0 1px rgba(13, 13, 13, 0.5);
width: 24px;
height: 24px;
cursor: pointer;
}
.shop-slider:focus::-ms-fill-lower { background: #ffffff; }
.shop-slider:focus::-ms-fill-upper { background: #ffffff; }
/* Overview page */
.ass-overview,
.ass-overview * {
box-sizing: border-box;
}
.ass-overview {
display: flex;
justify-content: space-between;
align-items: stretch;
flex-flow: row wrap;
}
.ass-overview > * {
flex: 0 0 24%;
}
.ass-overview > .ass-overview-50 { flex-basis: calc(50% - (4% / 6)); }
@media all and (max-width: 1200px) {
.ass-overview > * { flex-basis: calc(50% - (4% / 6)); }
}
@media all and (max-width: 700px) {
.ass-overview > .ass-overview-50,
.ass-overview > * { flex-basis: 100%; }
}
.ass-overview-list {
min-height: 305px;
list-style: none;
}
.ass-overview-list > :not(:last-child) {
border-bottom: 1px solid #d7d7d7;
margin-bottom: 5px;
padding-bottom: 5px;
}
.ass-overview-flex {
display: flex;
}
.ass-overview-flex-auto {
flex: 1 1 auto;
padding: 0 8px;
}
.ass-overview-flex-small {
text-align: center;
flex: 0 0 52px;
}
.ass-overview-flex-small img {
width: 50px;
height: auto;
max-height: 52px;
}
.ass-overview-flex-auto,
.ass-overview-flex-small {
display: flex;
align-items: center;
height: 52px;
}
.ass-overview-flex-auto > *,
.ass-overview-flex-small > * {
flex: 1 0 100%;
}
.ass-overview-flex-full-height {
height: 305px;
}
/* Item help */
.ass-help-body { margin-bottom: 400px; }
.ass-help-toolbox,
.ass-help-toolbox * {
box-sizing: border-box;
}
.ass-help-toolbox {
background: #fafafa;
border-top: 2px solid #12a3eb;
-webkit-box-shadow: 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12), 0 11px 15px -7px rgba(0, 0, 0, 0.2);
box-shadow: 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12), 0 11px 15px -7px rgba(0, 0, 0, 0.2);
position: fixed;
z-index: 50;
right: 0;
bottom: 0;
left: 0;
height: 400px;
}
.ass-help-flexbox {
position: relative;
z-index: 51;
display: flex;
overflow: hidden;
-webkit-overflow-scrolling: touch;
width: 100%;
height: 100%;
scroll-behavior: smooth;
scroll-snap-type: x mandatory;
}
.ass-help-flexbox > div {
flex-shrink: 0;
width: 100%;
height: 100%;
scroll-snap-align: start;
}
.ass-help-flexbox > div > h3 {
font-size: 24px;
text-align: center;
border-bottom: 1px solid #12a3eb;
color: #12a3eb;
width: 75%;
margin: 0 auto;
padding: 16px;
}
.ass-help-flexbox > div > div {
font-size: 16px;
background: #ffffff;
color: #313131;
height: 100%;
padding: 16px;
}
.ass-help-flexbox > div > div > a {
font-weight: bold;
letter-spacing: 0.05em;
color: #12a3eb;
}
.ass-help-flexbox > div > div > i {
font-family: monospace;
color: #000000;
quotes: "“" "”" "" "";
}
.ass-help-flexbox > div > div > i:before,
.ass-help-flexbox > div > div > i:after { color: #12a3eb; }
.ass-help-flexbox > div > div > i:before { content: open-quote; }
.ass-help-flexbox > div > div > i:after { content: close-quote; }
.ass-help-active {
background: #ffffff;
border: 1px solid #12a3eb;
border-radius: 4px;
-webkit-box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
position: relative;
z-index: 45;
margin-right: 32px;
padding: 16px 8px;
transition: all 0.75s ease-in-out;
pointer-events: none;
}
.ass-help-start {
border-color: #cccccc;
border-bottom: none;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
outline: none;
position: absolute;
top: -26px;
right: 8px;
}
@media all and (max-width: 1024px) {
.ass-help-start,
.ass-help-toolbox {
display: none;
}
}
.ass-help-start:hover { border-color: #28a745; }
.ass-help-next,
.ass-help-prev,
.ass-help-close {
position: fixed;
z-index: 52;
top: 16px;
right: 16px;
}
.ass-help-next,
.ass-help-prev {
top: unset;
bottom: 350px;
}
.ass-help-prev {
right: unset;
left: 16px;
}
/* Inventory */
.ass-button-inventory {
display: block;
height: auto;
padding: 16px;
}
.ass-button-inventory > span {
font-size: 24px;
display: block;
margin-bottom: 16px;
}

View File

@@ -0,0 +1,410 @@
.daterangepicker {
position: absolute;
color: inherit;
background-color: #fff;
border-radius: 4px;
border: 1px solid #ddd;
width: 278px;
max-width: none;
padding: 0;
margin-top: 7px;
top: 100px;
left: 20px;
z-index: 3001;
display: none;
font-family: arial;
font-size: 15px;
line-height: 1em;
}
.daterangepicker:before, .daterangepicker:after {
position: absolute;
display: inline-block;
border-bottom-color: rgba(0, 0, 0, 0.2);
content: '';
}
.daterangepicker:before {
top: -7px;
border-right: 7px solid transparent;
border-left: 7px solid transparent;
border-bottom: 7px solid #ccc;
}
.daterangepicker:after {
top: -6px;
border-right: 6px solid transparent;
border-bottom: 6px solid #fff;
border-left: 6px solid transparent;
}
.daterangepicker.opensleft:before {
right: 9px;
}
.daterangepicker.opensleft:after {
right: 10px;
}
.daterangepicker.openscenter:before {
left: 0;
right: 0;
width: 0;
margin-left: auto;
margin-right: auto;
}
.daterangepicker.openscenter:after {
left: 0;
right: 0;
width: 0;
margin-left: auto;
margin-right: auto;
}
.daterangepicker.opensright:before {
left: 9px;
}
.daterangepicker.opensright:after {
left: 10px;
}
.daterangepicker.drop-up {
margin-top: -7px;
}
.daterangepicker.drop-up:before {
top: initial;
bottom: -7px;
border-bottom: initial;
border-top: 7px solid #ccc;
}
.daterangepicker.drop-up:after {
top: initial;
bottom: -6px;
border-bottom: initial;
border-top: 6px solid #fff;
}
.daterangepicker.single .daterangepicker .ranges, .daterangepicker.single .drp-calendar {
float: none;
}
.daterangepicker.single .drp-selected {
display: none;
}
.daterangepicker.show-calendar .drp-calendar {
display: block;
}
.daterangepicker.show-calendar .drp-buttons {
display: block;
}
.daterangepicker.auto-apply .drp-buttons {
display: none;
}
.daterangepicker .drp-calendar {
display: none;
max-width: 270px;
}
.daterangepicker .drp-calendar.left {
padding: 8px 0 8px 8px;
}
.daterangepicker .drp-calendar.right {
padding: 8px;
}
.daterangepicker .drp-calendar.single .calendar-table {
border: none;
}
.daterangepicker .calendar-table .next span, .daterangepicker .calendar-table .prev span {
color: #fff;
border: solid black;
border-width: 0 2px 2px 0;
border-radius: 0;
display: inline-block;
padding: 3px;
}
.daterangepicker .calendar-table .next span {
transform: rotate(-45deg);
-webkit-transform: rotate(-45deg);
}
.daterangepicker .calendar-table .prev span {
transform: rotate(135deg);
-webkit-transform: rotate(135deg);
}
.daterangepicker .calendar-table th, .daterangepicker .calendar-table td {
white-space: nowrap;
text-align: center;
vertical-align: middle;
min-width: 32px;
width: 32px;
height: 24px;
line-height: 24px;
font-size: 12px;
border-radius: 4px;
border: 1px solid transparent;
white-space: nowrap;
cursor: pointer;
}
.daterangepicker .calendar-table {
border: 1px solid #fff;
border-radius: 4px;
background-color: #fff;
}
.daterangepicker .calendar-table table {
width: 100%;
margin: 0;
border-spacing: 0;
border-collapse: collapse;
}
.daterangepicker td.available:hover, .daterangepicker th.available:hover {
background-color: #eee;
border-color: transparent;
color: inherit;
}
.daterangepicker td.week, .daterangepicker th.week {
font-size: 80%;
color: #ccc;
}
.daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date {
background-color: #fff;
border-color: transparent;
color: #999;
}
.daterangepicker td.in-range {
background-color: #ebf4f8;
border-color: transparent;
color: #000;
border-radius: 0;
}
.daterangepicker td.start-date {
border-radius: 4px 0 0 4px;
}
.daterangepicker td.end-date {
border-radius: 0 4px 4px 0;
}
.daterangepicker td.start-date.end-date {
border-radius: 4px;
}
.daterangepicker td.active, .daterangepicker td.active:hover {
background-color: #357ebd;
border-color: transparent;
color: #fff;
}
.daterangepicker th.month {
width: auto;
}
.daterangepicker td.disabled, .daterangepicker option.disabled {
color: #999;
cursor: not-allowed;
text-decoration: line-through;
}
.daterangepicker select.monthselect, .daterangepicker select.yearselect {
font-size: 12px;
padding: 1px;
height: auto;
margin: 0;
cursor: default;
}
.daterangepicker select.monthselect {
margin-right: 2%;
width: 56%;
}
.daterangepicker select.yearselect {
width: 40%;
}
.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect {
width: 50px;
margin: 0 auto;
background: #eee;
border: 1px solid #eee;
padding: 2px;
outline: 0;
font-size: 12px;
}
.daterangepicker .calendar-time {
text-align: center;
margin: 4px auto 0 auto;
line-height: 30px;
position: relative;
}
.daterangepicker .calendar-time select.disabled {
color: #ccc;
cursor: not-allowed;
}
.daterangepicker .drp-buttons {
clear: both;
text-align: right;
padding: 8px;
border-top: 1px solid #ddd;
display: none;
line-height: 12px;
vertical-align: middle;
}
.daterangepicker .drp-selected {
display: inline-block;
font-size: 12px;
padding-right: 8px;
}
.daterangepicker .drp-buttons .btn {
margin-left: 8px;
font-size: 12px;
font-weight: bold;
padding: 4px 8px;
}
.daterangepicker.show-ranges.single.rtl .drp-calendar.left {
border-right: 1px solid #ddd;
}
.daterangepicker.show-ranges.single.ltr .drp-calendar.left {
border-left: 1px solid #ddd;
}
.daterangepicker.show-ranges.rtl .drp-calendar.right {
border-right: 1px solid #ddd;
}
.daterangepicker.show-ranges.ltr .drp-calendar.left {
border-left: 1px solid #ddd;
}
.daterangepicker .ranges {
float: none;
text-align: left;
margin: 0;
}
.daterangepicker.show-calendar .ranges {
margin-top: 8px;
}
.daterangepicker .ranges ul {
list-style: none;
margin: 0 auto;
padding: 0;
width: 100%;
}
.daterangepicker .ranges li {
font-size: 12px;
padding: 8px 12px;
cursor: pointer;
}
.daterangepicker .ranges li:hover {
background-color: #eee;
}
.daterangepicker .ranges li.active {
background-color: #08c;
color: #fff;
}
/* Larger Screen Styling */
@media (min-width: 564px) {
.daterangepicker {
width: auto;
}
.daterangepicker .ranges ul {
width: 140px;
}
.daterangepicker.single .ranges ul {
width: 100%;
}
.daterangepicker.single .drp-calendar.left {
clear: none;
}
.daterangepicker.single .ranges, .daterangepicker.single .drp-calendar {
float: left;
}
.daterangepicker {
direction: ltr;
text-align: left;
}
.daterangepicker .drp-calendar.left {
clear: left;
margin-right: 0;
}
.daterangepicker .drp-calendar.left .calendar-table {
border-right: none;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.daterangepicker .drp-calendar.right {
margin-left: 0;
}
.daterangepicker .drp-calendar.right .calendar-table {
border-left: none;
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.daterangepicker .drp-calendar.left .calendar-table {
padding-right: 8px;
}
.daterangepicker .ranges, .daterangepicker .drp-calendar {
float: left;
}
}
@media (min-width: 730px) {
.daterangepicker .ranges {
width: auto;
}
.daterangepicker .ranges {
float: left;
}
.daterangepicker.rtl .ranges {
float: right;
}
.daterangepicker .drp-calendar.left {
clear: none !important;
}
}

View File

@@ -0,0 +1,481 @@
.select2-container {
box-sizing: border-box;
display: inline-block;
margin: 0;
position: relative;
vertical-align: middle; }
.select2-container .select2-selection--single {
box-sizing: border-box;
cursor: pointer;
display: block;
height: 28px;
user-select: none;
-webkit-user-select: none; }
.select2-container .select2-selection--single .select2-selection__rendered {
display: block;
padding-left: 8px;
padding-right: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; }
.select2-container .select2-selection--single .select2-selection__clear {
position: relative; }
.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered {
padding-right: 8px;
padding-left: 20px; }
.select2-container .select2-selection--multiple {
box-sizing: border-box;
cursor: pointer;
display: block;
min-height: 32px;
user-select: none;
-webkit-user-select: none; }
.select2-container .select2-selection--multiple .select2-selection__rendered {
display: inline-block;
overflow: hidden;
padding-left: 8px;
text-overflow: ellipsis;
white-space: nowrap; }
.select2-container .select2-search--inline {
float: left; }
.select2-container .select2-search--inline .select2-search__field {
box-sizing: border-box;
border: none;
font-size: 100%;
margin-top: 5px;
padding: 0; }
.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none; }
.select2-dropdown {
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
box-sizing: border-box;
display: block;
position: absolute;
left: -100000px;
width: 100%;
z-index: 1051; }
.select2-results {
display: block; }
.select2-results__options {
list-style: none;
margin: 0;
padding: 0; }
.select2-results__option {
padding: 6px;
user-select: none;
-webkit-user-select: none; }
.select2-results__option[aria-selected] {
cursor: pointer; }
.select2-container--open .select2-dropdown {
left: 0; }
.select2-container--open .select2-dropdown--above {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }
.select2-container--open .select2-dropdown--below {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0; }
.select2-search--dropdown {
display: block;
padding: 4px; }
.select2-search--dropdown .select2-search__field {
padding: 4px;
width: 100%;
box-sizing: border-box; }
.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {
-webkit-appearance: none; }
.select2-search--dropdown.select2-search--hide {
display: none; }
.select2-close-mask {
border: 0;
margin: 0;
padding: 0;
display: block;
position: fixed;
left: 0;
top: 0;
min-height: 100%;
min-width: 100%;
height: auto;
width: auto;
opacity: 0;
z-index: 99;
background-color: #fff;
filter: alpha(opacity=0); }
.select2-hidden-accessible {
border: 0 !important;
clip: rect(0 0 0 0) !important;
-webkit-clip-path: inset(50%) !important;
clip-path: inset(50%) !important;
height: 1px !important;
overflow: hidden !important;
padding: 0 !important;
position: absolute !important;
width: 1px !important;
white-space: nowrap !important; }
.select2-container--default .select2-selection--single {
background-color: #fff;
border: 1px solid #aaa;
border-radius: 4px; }
.select2-container--default .select2-selection--single .select2-selection__rendered {
color: #444;
line-height: 28px; }
.select2-container--default .select2-selection--single .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold; }
.select2-container--default .select2-selection--single .select2-selection__placeholder {
color: #999; }
.select2-container--default .select2-selection--single .select2-selection__arrow {
height: 26px;
position: absolute;
top: 1px;
right: 1px;
width: 20px; }
.select2-container--default .select2-selection--single .select2-selection__arrow b {
border-color: #888 transparent transparent transparent;
border-style: solid;
border-width: 5px 4px 0 4px;
height: 0;
left: 50%;
margin-left: -4px;
margin-top: -2px;
position: absolute;
top: 50%;
width: 0; }
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear {
float: left; }
.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow {
left: 1px;
right: auto; }
.select2-container--default.select2-container--disabled .select2-selection--single {
background-color: #eee;
cursor: default; }
.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {
display: none; }
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
border-color: transparent transparent #888 transparent;
border-width: 0 4px 5px 4px; }
.select2-container--default .select2-selection--multiple {
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
cursor: text; }
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
box-sizing: border-box;
list-style: none;
margin: 0;
padding: 0 5px;
width: 100%; }
.select2-container--default .select2-selection--multiple .select2-selection__rendered li {
list-style: none; }
.select2-container--default .select2-selection--multiple .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold;
margin-top: 5px;
margin-right: 10px;
padding: 1px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice {
background-color: #e4e4e4;
border: 1px solid #aaa;
border-radius: 4px;
cursor: default;
float: left;
margin-right: 5px;
margin-top: 5px;
padding: 0 5px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
color: #999;
cursor: pointer;
display: inline-block;
font-weight: bold;
margin-right: 2px; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {
color: #333; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline {
float: right; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
margin-left: 5px;
margin-right: auto; }
.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
margin-left: 2px;
margin-right: auto; }
.select2-container--default.select2-container--focus .select2-selection--multiple {
border: solid black 1px;
outline: 0; }
.select2-container--default.select2-container--disabled .select2-selection--multiple {
background-color: #eee;
cursor: default; }
.select2-container--default.select2-container--disabled .select2-selection__choice__remove {
display: none; }
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {
border-top-left-radius: 0;
border-top-right-radius: 0; }
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }
.select2-container--default .select2-search--dropdown .select2-search__field {
border: 1px solid #aaa; }
.select2-container--default .select2-search--inline .select2-search__field {
background: transparent;
border: none;
outline: 0;
box-shadow: none;
-webkit-appearance: textfield; }
.select2-container--default .select2-results > .select2-results__options {
max-height: 200px;
overflow-y: auto; }
.select2-container--default .select2-results__option[role=group] {
padding: 0; }
.select2-container--default .select2-results__option[aria-disabled=true] {
color: #999; }
.select2-container--default .select2-results__option[aria-selected=true] {
background-color: #ddd; }
.select2-container--default .select2-results__option .select2-results__option {
padding-left: 1em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__group {
padding-left: 0; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option {
margin-left: -1em;
padding-left: 2em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -2em;
padding-left: 3em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -3em;
padding-left: 4em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -4em;
padding-left: 5em; }
.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {
margin-left: -5em;
padding-left: 6em; }
.select2-container--default .select2-results__option--highlighted[aria-selected] {
background-color: #5897fb;
color: white; }
.select2-container--default .select2-results__group {
cursor: default;
display: block;
padding: 6px; }
.select2-container--classic .select2-selection--single {
background-color: #f7f7f7;
border: 1px solid #aaa;
border-radius: 4px;
outline: 0;
background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);
background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);
background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
.select2-container--classic .select2-selection--single:focus {
border: 1px solid #5897fb; }
.select2-container--classic .select2-selection--single .select2-selection__rendered {
color: #444;
line-height: 28px; }
.select2-container--classic .select2-selection--single .select2-selection__clear {
cursor: pointer;
float: right;
font-weight: bold;
margin-right: 10px; }
.select2-container--classic .select2-selection--single .select2-selection__placeholder {
color: #999; }
.select2-container--classic .select2-selection--single .select2-selection__arrow {
background-color: #ddd;
border: none;
border-left: 1px solid #aaa;
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
height: 26px;
position: absolute;
top: 1px;
right: 1px;
width: 20px;
background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);
background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }
.select2-container--classic .select2-selection--single .select2-selection__arrow b {
border-color: #888 transparent transparent transparent;
border-style: solid;
border-width: 5px 4px 0 4px;
height: 0;
left: 50%;
margin-left: -4px;
margin-top: -2px;
position: absolute;
top: 50%;
width: 0; }
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear {
float: left; }
.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow {
border: none;
border-right: 1px solid #aaa;
border-radius: 0;
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
left: 1px;
right: auto; }
.select2-container--classic.select2-container--open .select2-selection--single {
border: 1px solid #5897fb; }
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {
background: transparent;
border: none; }
.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {
border-color: transparent transparent #888 transparent;
border-width: 0 4px 5px 4px; }
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0;
background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);
background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);
background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);
background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);
background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);
background-repeat: repeat-x;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }
.select2-container--classic .select2-selection--multiple {
background-color: white;
border: 1px solid #aaa;
border-radius: 4px;
cursor: text;
outline: 0; }
.select2-container--classic .select2-selection--multiple:focus {
border: 1px solid #5897fb; }
.select2-container--classic .select2-selection--multiple .select2-selection__rendered {
list-style: none;
margin: 0;
padding: 0 5px; }
.select2-container--classic .select2-selection--multiple .select2-selection__clear {
display: none; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice {
background-color: #e4e4e4;
border: 1px solid #aaa;
border-radius: 4px;
cursor: default;
float: left;
margin-right: 5px;
margin-top: 5px;
padding: 0 5px; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {
color: #888;
cursor: pointer;
display: inline-block;
font-weight: bold;
margin-right: 2px; }
.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {
color: #555; }
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice {
float: right;
margin-left: 5px;
margin-right: auto; }
.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove {
margin-left: 2px;
margin-right: auto; }
.select2-container--classic.select2-container--open .select2-selection--multiple {
border: 1px solid #5897fb; }
.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0; }
.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {
border-bottom: none;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0; }
.select2-container--classic .select2-search--dropdown .select2-search__field {
border: 1px solid #aaa;
outline: 0; }
.select2-container--classic .select2-search--inline .select2-search__field {
outline: 0;
box-shadow: none; }
.select2-container--classic .select2-dropdown {
background-color: white;
border: 1px solid transparent; }
.select2-container--classic .select2-dropdown--above {
border-bottom: none; }
.select2-container--classic .select2-dropdown--below {
border-top: none; }
.select2-container--classic .select2-results > .select2-results__options {
max-height: 200px;
overflow-y: auto; }
.select2-container--classic .select2-results__option[role=group] {
padding: 0; }
.select2-container--classic .select2-results__option[aria-disabled=true] {
color: grey; }
.select2-container--classic .select2-results__option--highlighted[aria-selected] {
background-color: #3875d7;
color: white; }
.select2-container--classic .select2-results__group {
cursor: default;
display: block;
padding: 6px; }
.select2-container--classic.select2-container--open .select2-dropdown {
border-color: #5897fb; }

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,6 @@
<dl>
<dt><label for="file">{{ lang('ASS_TYPE_FILE_TITLE') ~ lang('COLON') }}</label></dt>
<dd class="ass-input-icon" data-shop-file="{{ U_ACTION ~ U_FILE }}">
<i class="icon fa-file-image-o fa-fw" aria-hidden="true"></i><input class="autowidth" id="file" name="data[file]" type="text" value="{{ TYPE_FILE }}" required readonly>
</dd>
</dl>

View File

@@ -0,0 +1,6 @@
<dl>
<dt><label for="points">{{ aps_name() ~ lang('COLON') }}</label></dt>
<dd class="ass-input-icon">
{{ aps_icon() }}<input class="autowidth" id="points" name="data[points]" type="number" value="{{ TYPE_POINTS }}" min="0" step="{{ aps_step() }}" required>
</dd>
</dl>

View File

@@ -0,0 +1,326 @@
/**
*
* phpBB Studio - Advanced Shop System. An extension for the phpBB Forum Software package.
*
* @copyright (c) 2019, phpBB Studio, https://www.phpbbstudio.com
* @license GNU General Public License, version 2 (GPL-2.0)
*
*/
jQuery(function($) {
let studio = {
iconPicker: $('.aps-icon-picker'),
imageAddRow: $('#add_image_row'),
sortRows: $('[data-studio-sortable]'),
selects: $('[data-studio-select]'),
sliders: $('.shop-slider'),
panels: $('[data-studio-panel]'),
dates: {
format: 'DD/MM/YYYY HH:mm',
items: $('.shop-date'),
data: $('[data-shop-date]').data()
},
types: {
template: $('#type_template'),
select: $('#type')
},
title: $('#title'),
slug: $('#slug')
};
if (studio.iconPicker.length) {
studio.iconPicker.iconpicker({
collision: true,
placement: 'bottomRight',
component: '.aps-icon-picker + i',
locale: {
cancelLabel: 'Clear',
format: studio.dates.format
}
});
}
if (studio.selects.length) {
studio.selects.select2({
closeOnSelect: false,
});
}
/**
* Load the requested Item type template.
*
* @return {void}
*/
studio.types.select.on('change', function() {
$.ajax({
url: studio.types.template.data('shop-url'),
type: 'POST',
data: {
type: $(this).val()
},
success: function(r) {
if (r.success) {
studio.ajaxifyFiles(studio.types.template.html(r.body));
} else if (r.error) {
phpbb.alert(r.MESSAGE_TITLE, r.MESSAGE_TEXT);
}
}
})
});
/**
* Create date range pickers.
*
* @return {void}
*/
studio.dates.items.each(function() {
let $input = $(this).find('input'),
$start = $input.first(),
$until = $input.last();
/**
* Localised language strings.
*
* @param studio.dates.data.sun
* @param studio.dates.data.mon
* @param studio.dates.data.tue
* @param studio.dates.data.wed
* @param studio.dates.data.thu
* @param studio.dates.data.fri
* @param studio.dates.data.sat
* @param studio.dates.data.january,
* @param studio.dates.data.february,
* @param studio.dates.data.march,
* @param studio.dates.data.april,
* @param studio.dates.data.may,
* @param studio.dates.data.june,
* @param studio.dates.data.july,
* @param studio.dates.data.august,
* @param studio.dates.data.september,
* @param studio.dates.data.october,
* @param studio.dates.data.november,
* @param studio.dates.data.december
*/
$start.daterangepicker({
startDate: $start.val() || false,
endDate: $until.val() || false,
timePicker: true,
timePicker24Hour: true,
autoUpdateInput: false,
showWeekNumbers: true,
applyButtonClasses: 'aps-button-green',
cancelButtonClasses: 'aps-button-red',
locale: {
applyLabel: studio.dates.data.apply,
cancelLabel: studio.dates.data.clear,
format: studio.dates.format,
firstDay: 1,
daysOfWeek: [
studio.dates.data.sun,
studio.dates.data.mon,
studio.dates.data.tue,
studio.dates.data.wed,
studio.dates.data.thu,
studio.dates.data.fri,
studio.dates.data.sat
],
monthNames: [
studio.dates.data.january,
studio.dates.data.february,
studio.dates.data.march,
studio.dates.data.april,
studio.dates.data.may,
studio.dates.data.june,
studio.dates.data.july,
studio.dates.data.august,
studio.dates.data.september,
studio.dates.data.october,
studio.dates.data.november,
studio.dates.data.december
],
}
}).on('apply.daterangepicker', function(e, picker) {
$start.val(picker.startDate.format(studio.dates.format));
$until.val(picker.endDate.format(studio.dates.format));
}).on('cancel.daterangepicker', function() {
$start.val('');
$until.val('');
});
$until.on('click', function() { $start.data('daterangepicker').show(); });
});
/**
* Automatically create a slug from a title/
*
* @return {void}
*/
if (studio.title.length && studio.slug.length) {
studio.title.on('blur', function() {
let title = $(this).val();
studio.slug.val(function(event, slug) {
return (slug) ? slug : title.toLowerCase().replace(/[^a-z0-9-_\s]/gi, '').trim().replace(/[\s]+/g, '-');
});
});
}
/**
* Make the category and item tables sortables.
*
* @return {void}
*/
if (studio.sortRows.length) {
studio.sortRows.sortable({
axis: 'y',
containment: $(this).selector,
cursor: 'move',
delay: 150,
handle: '.aps-button-blue',
forcePlaceholderSize: true,
placeholder: 'panel',
tolerance: 'pointer',
update: function(e, ui) {
// On update (when rows changes position), save the order
$.ajax({
url: $(this).parents('form').attr('action') + '&action=move',
type: 'POST',
data: {
id: ui.item.data('id'),
order: ui.item.index(),
},
});
}
});
}
/**
* Ajaxify the different panels in the Settings page.
*
* @return {void}
*/
studio.panels.each(function() {
let $banner = $(this).find('i.shop-panel-icon'),
$bannerSize = $(this).find('select[name$="banner_size"]'),
$bannerColour = $(this).find('select[name$="banner_colour"]'),
$iconColour = $(this).find('select[name$="icon_colour"]'),
$icon = $(this).find('.aps-icon-picker');
let updateBanner = function() {
let bg = $bannerColour.val(),
size = $bannerSize.val(),
color = $iconColour.val(),
icon = $icon.val();
size = size ? `shop-panel-icon-${size}` : '';
bg = bg ? `shop-panel-icon-${bg}` : '';
if ($.inArray(icon, ['', 'fa-li', 'fa-2x', 'fa-3x', 'fa-4x', 'fa-5x']) !== -1) {
$banner.hide();
} else {
$banner.attr('class', `icon ${icon} icon-${color} shop-panel-icon ${size} ${bg}`).show();
}
};
$bannerSize.add($bannerColour).add($iconColour).on('change', updateBanner);
$icon.on('iconpickerSelected keyup', updateBanner);
});
/**
* Show the slider value in the output element after it.
*
* @return {void}
*/
studio.sliders.on('mouseup input', function(e) {
if (e.type === 'mouseup') {
$(this).attr('value', this.value);
$(this).blur();
} else {
$(this).next('output').text(this.value);
}
});
/**
* Add an additional item image input row.
*
* @return {void}
*/
studio.imageAddRow.on('click', function() {
let $parent = $(this).parent(),
$prev = $parent.prev(),
$row = $prev.clone(),
$input = $row.find('input');
/**
* Increment a number by one.
*
* @param {?} value
* @return {number}
*/
function increment(value) {
return parseInt(value) + 1;
}
// Increment the id="" and name="" attributes
$input.attr('id', $input.attr('id').replace(/\d+$/, increment));
$input.attr('name', $input.attr('name').replace(/\d+(?=]$)/, increment));
$input.val('');
// Ajaxify the file links
studio.ajaxifyLinks(0, $row);
// And insert the row
$row.insertBefore($parent)
});
/**
* Register shop file links as pop up requests.
*
* @param {jQuery=} context
* @return {void}
*/
studio.ajaxifyFiles = function(context) {
$('[data-shop-file]', context).each(studio.ajaxifyLinks);
};
/**
* Open a new pop up window for the shop file links.
*
* @param {number} i
* @param {HTMLElement} element
* @return {void}
*/
studio.ajaxifyLinks = function(i, element) {
let $this = $(element),
$input = $this.find('input');
$this.find('input').on('click', function() {
let url = $this.data('shop-file') + encodeURIComponent($input.val()) + '&input=' + encodeURIComponent($input.attr('id'));
window.open(url.replace(/&amp;/g, '&'), 'file', 'height=570,resizable=yes,scrollbars=yes, width=760');
});
};
studio.ajaxifyFiles();
/**
* Add AJAX callback for resolving items.
*
* @return {void}
*/
phpbb.addAjaxCallback('shop_resolve', function() {
$(this).parents('fieldset').hide();
let $active = $('#active');
// If the item is not active, highlight the activate button.
if ($active.is(':checked') === false) {
let $span = $active.next('span');
$span.addClass('ass-button-pulse');
$active.on('change', function() {
$span.removeClass('ass-button-pulse');
});
}
});
});

View File

@@ -0,0 +1,91 @@
/**
*
* phpBB Studio - Advanced Shop System. An extension for the phpBB Forum Software package.
*
* @copyright (c) 2019, phpBB Studio, https://www.phpbbstudio.com
* @license GNU General Public License, version 2 (GPL-2.0)
*
*/
jQuery(function($) {
let studio = {
buttons: {
close: $('.ass-help-close'),
start: $('.ass-help-start'),
next: $('.ass-help-next'),
prev: $('.ass-help-prev')
},
classes: {
active: 'ass-help-active',
body: 'ass-help-body'
},
flexbox: $('.ass-help-flexbox'),
toolbox: $('.ass-help-toolbox'),
wrapper: $('#darkenwrapper'),
index: 0
};
studio.init = function() {
this.wrapper.append(this.toolbox);
this.items = this.flexbox.children();
this.buttons.start.on('click', function() { studio.toggle(true); });
this.buttons.close.on('click', function() { studio.toggle(false); });
this.buttons.next.on('click', function() { studio.navigate(1); });
this.buttons.prev.on('click', function() { studio.navigate(-1); });
};
studio.init();
studio.toggle = function(show) {
$('body').toggleClass(studio.classes.body);
studio.toolbox.toggle(show);
studio.wrapper.toggle(show);
show ? studio.select() : studio.deselect();
};
studio.navigate = function(direction) {
let length = studio.items.length,
index = studio.index + direction;
if (index >= 0 && index < length) {
studio.index = index;
studio.select();
studio.scrollToSlide();
}
studio.buttons.prev.toggle(studio.index !== 0);
studio.buttons.next.toggle(studio.index !== (length - 1));
};
studio.select = function() {
let $item = $(studio.items.get(studio.index)),
$option = $(`label[for="${$item.data('id')}"]`).parents('dl');
studio.deselect();
$option.addClass(studio.classes.active).css('max-height', $(window).outerHeight() - (400 + 64 + 64));
studio.scrollToTop($option);
};
studio.deselect = function() {
$(`.${studio.classes.active}`).removeClass(studio.classes.active).css('max-height', '');
};
studio.scrollToSlide = function() {
studio.flexbox.animate({
scrollLeft: studio.index * $(window).outerWidth()
});
};
studio.scrollToTop = function($element) {
$('html, body').stop(true).animate({
scrollTop: $element.offset().top - 64
}, 1000);
};
});

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/af",[],function(){return{errorLoading:function(){return"Die resultate kon nie gelaai word nie."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Verwyders asseblief "+n+" character";return 1!=n&&(r+="s"),r},inputTooShort:function(e){return"Voer asseblief "+(e.minimum-e.input.length)+" of meer karakters"},loadingMore:function(){return"Meer resultate word gelaai…"},maximumSelected:function(e){var n="Kies asseblief net "+e.maximum+" item";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"Geen resultate gevind"},searching:function(){return"Besig…"},removeAllItems:function(){return"Verwyder alle items"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ar",[],function(){return{errorLoading:function(){return"لا يمكن تحميل النتائج"},inputTooLong:function(n){return"الرجاء حذف "+(n.input.length-n.maximum)+" عناصر"},inputTooShort:function(n){return"الرجاء إضافة "+(n.minimum-n.input.length)+" عناصر"},loadingMore:function(){return"جاري تحميل نتائج إضافية..."},maximumSelected:function(n){return"تستطيع إختيار "+n.maximum+" بنود فقط"},noResults:function(){return"لم يتم العثور على أي نتائج"},searching:function(){return"جاري البحث…"},removeAllItems:function(){return"قم بإزالة كل العناصر"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/az",[],function(){return{inputTooLong:function(n){return n.input.length-n.maximum+" simvol silin"},inputTooShort:function(n){return n.minimum-n.input.length+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(n){return"Sadəcə "+n.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"},removeAllItems:function(){return"Bütün elementləri sil"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bg",[],function(){return{inputTooLong:function(n){var e=n.input.length-n.maximum,u="Моля въведете с "+e+" по-малко символ";return e>1&&(u+="a"),u},inputTooShort:function(n){var e=n.minimum-n.input.length,u="Моля въведете още "+e+" символ";return e>1&&(u+="a"),u},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(n){var e="Можете да направите до "+n.maximum+" ";return n.maximum>1?e+="избора":e+="избор",e},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"},removeAllItems:function(){return"Премахнете всички елементи"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/bn",[],function(){return{errorLoading:function(){return"ফলাফলগুলি লোড করা যায়নি।"},inputTooLong:function(n){var e=n.input.length-n.maximum,u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।";return 1!=e&&(u="অনুগ্রহ করে "+e+" টি অক্ষর মুছে দিন।"),u},inputTooShort:function(n){return n.minimum-n.input.length+" টি অক্ষর অথবা অধিক অক্ষর লিখুন।"},loadingMore:function(){return"আরো ফলাফল লোড হচ্ছে ..."},maximumSelected:function(n){var e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।";return 1!=n.maximum&&(e=n.maximum+" টি আইটেম নির্বাচন করতে পারবেন।"),e},noResults:function(){return"কোন ফলাফল পাওয়া যায়নি।"},searching:function(){return"অনুসন্ধান করা হচ্ছে ..."}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/bs",[],function(){function e(e,n,r,t){return e%10==1&&e%100!=11?n:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?r:t}return{errorLoading:function(){return"Preuzimanje nije uspijelo."},inputTooLong:function(n){var r=n.input.length-n.maximum,t="Obrišite "+r+" simbol";return t+=e(r,"","a","a")},inputTooShort:function(n){var r=n.minimum-n.input.length,t="Ukucajte bar još "+r+" simbol";return t+=e(r,"","a","a")},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(n){var r="Možete izabrati samo "+n.maximum+" stavk";return r+=e(n.maximum,"u","e","i")},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Uklonite sve stavke"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Si us plau, elimina "+n+" car";return r+=1==n?"àcter":"àcters"},inputTooShort:function(e){var n=e.minimum-e.input.length,r="Si us plau, introdueix "+n+" car";return r+=1==n?"àcter":"àcters"},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var n="Només es pot seleccionar "+e.maximum+" element";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"},removeAllItems:function(){return"Treu tots els elements"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/cs",[],function(){function e(e,n){switch(e){case 2:return n?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?"Prosím, zadejte o jeden znak méně.":t<=4?"Prosím, zadejte o "+e(t,!0)+" znaky méně.":"Prosím, zadejte o "+t+" znaků méně."},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?"Prosím, zadejte ještě jeden znak.":t<=4?"Prosím, zadejte ještě další "+e(t,!0)+" znaky.":"Prosím, zadejte ještě dalších "+t+" znaků."},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(n){var t=n.maximum;return 1==t?"Můžete zvolit jen jednu položku.":t<=4?"Můžete zvolit maximálně "+e(t,!1)+" položky.":"Můžete zvolit maximálně "+t+" položek."},noResults:function(){return"Nenalezeny žádné položky."},searching:function(){return"Vyhledávání…"},removeAllItems:function(){return"Odstraňte všechny položky"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"Resultaterne kunne ikke indlæses."},inputTooLong:function(e){return"Angiv venligst "+(e.input.length-e.maximum)+" tegn mindre"},inputTooShort:function(e){return"Angiv venligst "+(e.minimum-e.input.length)+" tegn mere"},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var n="Du kan kun vælge "+e.maximum+" emne";return 1!=e.maximum&&(n+="r"),n},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"},removeAllItems:function(){return"Fjern alle elementer"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/de",[],function(){return{errorLoading:function(){return"Die Ergebnisse konnten nicht geladen werden."},inputTooLong:function(e){return"Bitte "+(e.input.length-e.maximum)+" Zeichen weniger eingeben"},inputTooShort:function(e){return"Bitte "+(e.minimum-e.input.length)+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var n="Sie können nur "+e.maximum+" Element";return 1!=e.maximum&&(n+="e"),n+=" auswählen"},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"},removeAllItems:function(){return"Entferne alle Elemente"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/dsb",[],function(){var n=["znamuško","znamušce","znamuška","znamuškow"],e=["zapisk","zapiska","zapiski","zapiskow"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return"Wuslědki njejsu se dali zacytaś."},inputTooLong:function(e){var a=e.input.length-e.maximum;return"Pšosym lašuj "+a+" "+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return"Pšosym zapódaj nanejmjenjej "+a+" "+u(a,n)},loadingMore:function(){return"Dalšne wuslědki se zacytaju…"},maximumSelected:function(n){return"Móžoš jano "+n.maximum+" "+u(n.maximum,e)+"wubraś."},noResults:function(){return"Žedne wuslědki namakane"},searching:function(){return"Pyta se…"},removeAllItems:function(){return"Remove all items"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/el",[],function(){return{errorLoading:function(){return"Τα αποτελέσματα δεν μπόρεσαν να φορτώσουν."},inputTooLong:function(n){var e=n.input.length-n.maximum,u="Παρακαλώ διαγράψτε "+e+" χαρακτήρ";return 1==e&&(u+="α"),1!=e&&(u+="ες"),u},inputTooShort:function(n){return"Παρακαλώ συμπληρώστε "+(n.minimum-n.input.length)+" ή περισσότερους χαρακτήρες"},loadingMore:function(){return"Φόρτωση περισσότερων αποτελεσμάτων…"},maximumSelected:function(n){var e="Μπορείτε να επιλέξετε μόνο "+n.maximum+" επιλογ";return 1==n.maximum&&(e+="ή"),1!=n.maximum&&(e+="ές"),e},noResults:function(){return"Δεν βρέθηκαν αποτελέσματα"},searching:function(){return"Αναζήτηση…"},removeAllItems:function(){return"Καταργήστε όλα τα στοιχεία"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Please delete "+n+" character";return 1!=n&&(r+="s"),r},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var n="You can only select "+e.maximum+" item";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No results found"},searching:function(){return"Searching…"},removeAllItems:function(){return"Remove all items"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"No se pudieron cargar los resultados"},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Por favor, elimine "+n+" car";return r+=1==n?"ácter":"acteres"},inputTooShort:function(e){var n=e.minimum-e.input.length,r="Por favor, introduzca "+n+" car";return r+=1==n?"ácter":"acteres"},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var n="Sólo puede seleccionar "+e.maximum+" elemento";return 1!=e.maximum&&(n+="s"),n},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Eliminar todos los elementos"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var n=e.input.length-e.maximum,t="Sisesta "+n+" täht";return 1!=n&&(t+="e"),t+=" vähem"},inputTooShort:function(e){var n=e.minimum-e.input.length,t="Sisesta "+n+" täht";return 1!=n&&(t+="e"),t+=" rohkem"},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var n="Saad vaid "+e.maximum+" tulemus";return 1==e.maximum?n+="e":n+="t",n+=" valida"},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"},removeAllItems:function(){return"Eemalda kõik esemed"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return n+=1==t?"karaktere bat":t+" karaktere",n+=" gutxiago"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return n+=1==t?"karaktere bat":t+" karaktere",n+=" gehiago"},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return 1===e.maximum?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"},removeAllItems:function(){return"Kendu elementu guztiak"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(n){return"لطفاً "+(n.input.length-n.maximum)+" کاراکتر را حذف نمایید"},inputTooShort:function(n){return"لطفاً تعداد "+(n.minimum-n.input.length)+" کاراکتر یا بیشتر وارد نمایید"},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(n){return"شما تنها می‌توانید "+n.maximum+" آیتم را انتخاب نمایید"},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."},removeAllItems:function(){return"همه موارد را حذف کنید"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/fi",[],function(){return{errorLoading:function(){return"Tuloksia ei saatu ladattua."},inputTooLong:function(n){return"Ole hyvä ja anna "+(n.input.length-n.maximum)+" merkkiä vähemmän"},inputTooShort:function(n){return"Ole hyvä ja anna "+(n.minimum-n.input.length)+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(n){return"Voit valita ainoastaan "+n.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){return"Haetaan…"},removeAllItems:function(){return"Poista kaikki kohteet"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/fr",[],function(){return{errorLoading:function(){return"Les résultats ne peuvent pas être chargés."},inputTooLong:function(e){var n=e.input.length-e.maximum;return"Supprimez "+n+" caractère"+(n>1?"s":"")},inputTooShort:function(e){var n=e.minimum-e.input.length;return"Saisissez au moins "+n+" caractère"+(n>1?"s":"")},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){return"Vous pouvez seulement sélectionner "+e.maximum+" élément"+(e.maximum>1?"s":"")},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"},removeAllItems:function(){return"Supprimer tous les éléments"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/gl",[],function(){return{errorLoading:function(){return"Non foi posíbel cargar os resultados."},inputTooLong:function(e){var n=e.input.length-e.maximum;return 1===n?"Elimine un carácter":"Elimine "+n+" caracteres"},inputTooShort:function(e){var n=e.minimum-e.input.length;return 1===n?"Engada un carácter":"Engada "+n+" caracteres"},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){return 1===e.maximum?"Só pode seleccionar un elemento":"Só pode seleccionar "+e.maximum+" elementos"},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Elimina todos os elementos"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"שגיאה בטעינת התוצאות"},inputTooLong:function(n){var e=n.input.length-n.maximum,r="נא למחוק ";return r+=1===e?"תו אחד":e+" תווים"},inputTooShort:function(n){var e=n.minimum-n.input.length,r="נא להכניס ";return r+=1===e?"תו אחד":e+" תווים",r+=" או יותר"},loadingMore:function(){return"טוען תוצאות נוספות…"},maximumSelected:function(n){var e="באפשרותך לבחור עד ";return 1===n.maximum?e+="פריט אחד":e+=n.maximum+" פריטים",e},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"},removeAllItems:function(){return"הסר את כל הפריטים"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(n){var e=n.input.length-n.maximum,r=e+" अक्षर को हटा दें";return e>1&&(r=e+" अक्षरों को हटा दें "),r},inputTooShort:function(n){return"कृपया "+(n.minimum-n.input.length)+" या अधिक अक्षर दर्ज करें"},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(n){return"आप केवल "+n.maximum+" आइटम का चयन कर सकते हैं"},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."},removeAllItems:function(){return"सभी वस्तुओं को हटा दें"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hr",[],function(){function n(n){var e=" "+n+" znak";return n%10<5&&n%10>0&&(n%100<5||n%100>19)?n%10>1&&(e+="a"):e+="ova",e}return{errorLoading:function(){return"Preuzimanje nije uspjelo."},inputTooLong:function(e){return"Unesite "+n(e.input.length-e.maximum)},inputTooShort:function(e){return"Unesite još "+n(e.minimum-e.input.length)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(n){return"Maksimalan broj odabranih stavki je "+n.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Ukloni sve stavke"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hsb",[],function(){var n=["znamješko","znamješce","znamješka","znamješkow"],e=["zapisk","zapiskaj","zapiski","zapiskow"],u=function(n,e){return 1===n?e[0]:2===n?e[1]:n>2&&n<=4?e[2]:n>=5?e[3]:void 0};return{errorLoading:function(){return"Wuslědki njedachu so začitać."},inputTooLong:function(e){var a=e.input.length-e.maximum;return"Prošu zhašej "+a+" "+u(a,n)},inputTooShort:function(e){var a=e.minimum-e.input.length;return"Prošu zapodaj znajmjeńša "+a+" "+u(a,n)},loadingMore:function(){return"Dalše wuslědki so začitaja…"},maximumSelected:function(n){return"Móžeš jenož "+n.maximum+" "+u(n.maximum,e)+"wubrać"},noResults:function(){return"Žane wuslědki namakane"},searching:function(){return"Pyta so…"},removeAllItems:function(){return"Remove all items"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/hu",[],function(){return{errorLoading:function(){return"Az eredmények betöltése nem sikerült."},inputTooLong:function(e){return"Túl hosszú. "+(e.input.length-e.maximum)+" karakterrel több, mint kellene."},inputTooShort:function(e){return"Túl rövid. Még "+(e.minimum-e.input.length)+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"},removeAllItems:function(){return"Távolítson el minden elemet"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/hy",[],function(){return{errorLoading:function(){return"Արդյունքները հնարավոր չէ բեռնել։"},inputTooLong:function(n){return"Խնդրում ենք հեռացնել "+(n.input.length-n.maximum)+" նշան"},inputTooShort:function(n){return"Խնդրում ենք մուտքագրել "+(n.minimum-n.input.length)+" կամ ավել նշաններ"},loadingMore:function(){return"Բեռնվում են նոր արդյունքներ․․․"},maximumSelected:function(n){return"Դուք կարող եք ընտրել առավելագույնը "+n.maximum+" կետ"},noResults:function(){return"Արդյունքներ չեն գտնվել"},searching:function(){return"Որոնում․․․"},removeAllItems:function(){return"Հեռացնել բոլոր տարրերը"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/id",[],function(){return{errorLoading:function(){return"Data tidak boleh diambil."},inputTooLong:function(n){return"Hapuskan "+(n.input.length-n.maximum)+" huruf"},inputTooShort:function(n){return"Masukkan "+(n.minimum-n.input.length)+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(n){return"Anda hanya dapat memilih "+n.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"},removeAllItems:function(){return"Hapus semua item"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/is",[],function(){return{inputTooLong:function(n){var t=n.input.length-n.maximum,e="Vinsamlegast styttið texta um "+t+" staf";return t<=1?e:e+"i"},inputTooShort:function(n){var t=n.minimum-n.input.length,e="Vinsamlegast skrifið "+t+" staf";return t>1&&(e+="i"),e+=" í viðbót"},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(n){return"Þú getur aðeins valið "+n.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"},removeAllItems:function(){return"Fjarlægðu öll atriði"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Per favore cancella "+n+" caratter";return t+=1!==n?"i":"e"},inputTooShort:function(e){return"Per favore inserisci "+(e.minimum-e.input.length)+" o più caratteri"},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var n="Puoi selezionare solo "+e.maximum+" element";return 1!==e.maximum?n+="i":n+="o",n},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"},removeAllItems:function(){return"Rimuovi tutti gli oggetti"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ja",[],function(){return{errorLoading:function(){return"結果が読み込まれませんでした"},inputTooLong:function(n){return n.input.length-n.maximum+" 文字を削除してください"},inputTooShort:function(n){return"少なくとも "+(n.minimum-n.input.length)+" 文字を入力してください"},loadingMore:function(){return"読み込み中…"},maximumSelected:function(n){return n.maximum+" 件しか選択できません"},noResults:function(){return"対象が見つかりません"},searching:function(){return"検索しています…"},removeAllItems:function(){return"すべてのアイテムを削除"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ka",[],function(){return{errorLoading:function(){return"მონაცემების ჩატვირთვა შეუძლებელია."},inputTooLong:function(n){return"გთხოვთ აკრიფეთ "+(n.input.length-n.maximum)+" სიმბოლოთი ნაკლები"},inputTooShort:function(n){return"გთხოვთ აკრიფეთ "+(n.minimum-n.input.length)+" სიმბოლო ან მეტი"},loadingMore:function(){return"მონაცემების ჩატვირთვა…"},maximumSelected:function(n){return"თქვენ შეგიძლიათ აირჩიოთ არაუმეტეს "+n.maximum+" ელემენტი"},noResults:function(){return"რეზულტატი არ მოიძებნა"},searching:function(){return"ძიება…"},removeAllItems:function(){return"ამოიღე ყველა ელემენტი"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/km",[],function(){return{errorLoading:function(){return"មិនអាចទាញយកទិន្នន័យ"},inputTooLong:function(n){return"សូមលុបចេញ "+(n.input.length-n.maximum)+" អក្សរ"},inputTooShort:function(n){return"សូមបញ្ចូល"+(n.minimum-n.input.length)+" អក្សរ រឺ ច្រើនជាងនេះ"},loadingMore:function(){return"កំពុងទាញយកទិន្នន័យបន្ថែម..."},maximumSelected:function(n){return"អ្នកអាចជ្រើសរើសបានតែ "+n.maximum+" ជម្រើសប៉ុណ្ណោះ"},noResults:function(){return"មិនមានលទ្ធផល"},searching:function(){return"កំពុងស្វែងរក..."},removeAllItems:function(){return"លុបធាតុទាំងអស់"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(n){return"너무 깁니다. "+(n.input.length-n.maximum)+" 글자 지워주세요."},inputTooShort:function(n){return"너무 짧습니다. "+(n.minimum-n.input.length)+" 글자 더 입력해주세요."},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(n){return"최대 "+n.maximum+"개까지만 선택 가능합니다."},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"},removeAllItems:function(){return"모든 항목 삭제"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/lt",[],function(){function n(n,e,i,t){return n%10==1&&(n%100<11||n%100>19)?e:n%10>=2&&n%10<=9&&(n%100<11||n%100>19)?i:t}return{inputTooLong:function(e){var i=e.input.length-e.maximum,t="Pašalinkite "+i+" simbol";return t+=n(i,"į","ius","ių")},inputTooShort:function(e){var i=e.minimum-e.input.length,t="Įrašykite dar "+i+" simbol";return t+=n(i,"į","ius","ių")},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(e){var i="Jūs galite pasirinkti tik "+e.maximum+" element";return i+=n(e.maximum,"ą","us","ų")},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"},removeAllItems:function(){return"Pašalinti visus elementus"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/lv",[],function(){function e(e,n,u,i){return 11===e?n:e%10==1?u:i}return{inputTooLong:function(n){var u=n.input.length-n.maximum,i="Lūdzu ievadiet par "+u;return(i+=" simbol"+e(u,"iem","u","iem"))+" mazāk"},inputTooShort:function(n){var u=n.minimum-n.input.length,i="Lūdzu ievadiet vēl "+u;return i+=" simbol"+e(u,"us","u","us")},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(n){var u="Jūs varat izvēlēties ne vairāk kā "+n.maximum;return u+=" element"+e(n.maximum,"us","u","us")},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"},removeAllItems:function(){return"Noņemt visus vienumus"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/mk",[],function(){return{inputTooLong:function(n){var e=(n.input.length,n.maximum,"Ве молиме внесете "+n.maximum+" помалку карактер");return 1!==n.maximum&&(e+="и"),e},inputTooShort:function(n){var e=(n.minimum,n.input.length,"Ве молиме внесете уште "+n.maximum+" карактер");return 1!==n.maximum&&(e+="и"),e},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(n){var e="Можете да изберете само "+n.maximum+" ставк";return 1===n.maximum?e+="а":e+="и",e},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"},removeAllItems:function(){return"Отстрани ги сите предмети"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ms",[],function(){return{errorLoading:function(){return"Keputusan tidak berjaya dimuatkan."},inputTooLong:function(n){return"Sila hapuskan "+(n.input.length-n.maximum)+" aksara"},inputTooShort:function(n){return"Sila masukkan "+(n.minimum-n.input.length)+" atau lebih aksara"},loadingMore:function(){return"Sedang memuatkan keputusan…"},maximumSelected:function(n){return"Anda hanya boleh memilih "+n.maximum+" pilihan"},noResults:function(){return"Tiada padanan yang ditemui"},searching:function(){return"Mencari…"},removeAllItems:function(){return"Keluarkan semua item"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/nb",[],function(){return{errorLoading:function(){return"Kunne ikke hente resultater."},inputTooLong:function(e){return"Vennligst fjern "+(e.input.length-e.maximum)+" tegn"},inputTooShort:function(e){return"Vennligst skriv inn "+(e.minimum-e.input.length)+" tegn til"},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"},removeAllItems:function(){return"Fjern alle elementer"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ne",[],function(){return{errorLoading:function(){return"नतिजाहरु देखाउन सकिएन।"},inputTooLong:function(n){var e=n.input.length-n.maximum,u="कृपया "+e+" अक्षर मेटाउनुहोस्।";return 1!=e&&(u+="कृपया "+e+" अक्षरहरु मेटाउनुहोस्।"),u},inputTooShort:function(n){return"कृपया बाँकी रहेका "+(n.minimum-n.input.length)+" वा अरु धेरै अक्षरहरु भर्नुहोस्।"},loadingMore:function(){return"अरु नतिजाहरु भरिँदैछन् …"},maximumSelected:function(n){var e="तँपाई "+n.maximum+" वस्तु मात्र छान्न पाउँनुहुन्छ।";return 1!=n.maximum&&(e="तँपाई "+n.maximum+" वस्तुहरु मात्र छान्न पाउँनुहुन्छ।"),e},noResults:function(){return"कुनै पनि नतिजा भेटिएन।"},searching:function(){return"खोजि हुँदैछ…"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){return"Gelieve "+(e.input.length-e.maximum)+" karakters te verwijderen"},inputTooShort:function(e){return"Gelieve "+(e.minimum-e.input.length)+" of meer karakters in te voeren"},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var n=1==e.maximum?"kan":"kunnen",r="Er "+n+" maar "+e.maximum+" item";return 1!=e.maximum&&(r+="s"),r+=" worden geselecteerd"},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"},removeAllItems:function(){return"Verwijder alle items"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/pl",[],function(){var n=["znak","znaki","znaków"],e=["element","elementy","elementów"],r=function(n,e){return 1===n?e[0]:n>1&&n<=4?e[1]:n>=5?e[2]:void 0};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(e){var t=e.input.length-e.maximum;return"Usuń "+t+" "+r(t,n)},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Podaj przynajmniej "+t+" "+r(t,n)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(n){return"Możesz zaznaczyć tylko "+n.maximum+" "+r(n.maximum,e)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"},removeAllItems:function(){return"Usuń wszystkie przedmioty"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ps",[],function(){return{errorLoading:function(){return"پايلي نه سي ترلاسه کېدای"},inputTooLong:function(n){var e=n.input.length-n.maximum,r="د مهربانۍ لمخي "+e+" توری ړنګ کړئ";return 1!=e&&(r=r.replace("توری","توري")),r},inputTooShort:function(n){return"لږ تر لږه "+(n.minimum-n.input.length)+" يا ډېر توري وليکئ"},loadingMore:function(){return"نوري پايلي ترلاسه کيږي..."},maximumSelected:function(n){var e="تاسو يوازي "+n.maximum+" قلم په نښه کولای سی";return 1!=n.maximum&&(e=e.replace("قلم","قلمونه")),e},noResults:function(){return"پايلي و نه موندل سوې"},searching:function(){return"لټول کيږي..."},removeAllItems:function(){return"ټول توکي لرې کړئ"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var n=e.input.length-e.maximum,r="Apague "+n+" caracter";return 1!=n&&(r+="es"),r},inputTooShort:function(e){return"Digite "+(e.minimum-e.input.length)+" ou mais caracteres"},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var n="Você só pode selecionar "+e.maximum+" ite";return 1==e.maximum?n+="m":n+="ns",n},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"},removeAllItems:function(){return"Remover todos os itens"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var r=e.input.length-e.maximum,n="Por favor apague "+r+" ";return n+=1!=r?"caracteres":"caractere"},inputTooShort:function(e){return"Introduza "+(e.minimum-e.input.length)+" ou mais caracteres"},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var r="Apenas pode seleccionar "+e.maximum+" ";return r+=1!=e.maximum?"itens":"item"},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"},removeAllItems:function(){return"Remover todos os itens"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/ro",[],function(){return{errorLoading:function(){return"Rezultatele nu au putut fi incărcate."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să ștergeți"+t+" caracter";return 1!==t&&(n+="e"),n},inputTooShort:function(e){return"Vă rugăm să introduceți "+(e.minimum-e.input.length)+" sau mai multe caractere"},loadingMore:function(){return"Se încarcă mai multe rezultate…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",1!==e.maximum&&(t+="e"),t},noResults:function(){return"Nu au fost găsite rezultate"},searching:function(){return"Căutare…"},removeAllItems:function(){return"Eliminați toate elementele"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/ru",[],function(){function n(n,e,r,u){return n%10<5&&n%10>0&&n%100<5||n%100>20?n%10>1?r:e:u}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Пожалуйста, введите на "+r+" символ";return u+=n(r,"","a","ов"),u+=" меньше"},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Пожалуйста, введите ещё хотя бы "+r+" символ";return u+=n(r,"","a","ов")},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(e){var r="Вы можете выбрать не более "+e.maximum+" элемент";return r+=n(e.maximum,"","a","ов")},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"},removeAllItems:function(){return"Удалить все элементы"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{errorLoading:function(){return"Výsledky sa nepodarilo načítať."},inputTooLong:function(n){var t=n.input.length-n.maximum;return 1==t?"Prosím, zadajte o jeden znak menej":t>=2&&t<=4?"Prosím, zadajte o "+e[t](!0)+" znaky menej":"Prosím, zadajte o "+t+" znakov menej"},inputTooShort:function(n){var t=n.minimum-n.input.length;return 1==t?"Prosím, zadajte ešte jeden znak":t<=4?"Prosím, zadajte ešte ďalšie "+e[t](!0)+" znaky":"Prosím, zadajte ešte ďalších "+t+" znakov"},loadingMore:function(){return"Načítanie ďalších výsledkov…"},maximumSelected:function(n){return 1==n.maximum?"Môžete zvoliť len jednu položku":n.maximum>=2&&n.maximum<=4?"Môžete zvoliť najviac "+e[n.maximum](!1)+" položky":"Môžete zvoliť najviac "+n.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"},removeAllItems:function(){return"Odstráňte všetky položky"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sl",[],function(){return{errorLoading:function(){return"Zadetkov iskanja ni bilo mogoče naložiti."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Prosim zbrišite "+n+" znak";return 2==n?t+="a":1!=n&&(t+="e"),t},inputTooShort:function(e){var n=e.minimum-e.input.length,t="Prosim vpišite še "+n+" znak";return 2==n?t+="a":1!=n&&(t+="e"),t},loadingMore:function(){return"Nalagam več zadetkov…"},maximumSelected:function(e){var n="Označite lahko največ "+e.maximum+" predmet";return 2==e.maximum?n+="a":1!=e.maximum&&(n+="e"),n},noResults:function(){return"Ni zadetkov."},searching:function(){return"Iščem…"},removeAllItems:function(){return"Odstranite vse elemente"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/sq",[],function(){return{errorLoading:function(){return"Rezultatet nuk mund të ngarkoheshin."},inputTooLong:function(e){var n=e.input.length-e.maximum,t="Të lutem fshi "+n+" karakter";return 1!=n&&(t+="e"),t},inputTooShort:function(e){return"Të lutem shkruaj "+(e.minimum-e.input.length)+" ose më shumë karaktere"},loadingMore:function(){return"Duke ngarkuar më shumë rezultate…"},maximumSelected:function(e){var n="Mund të zgjedhësh vetëm "+e.maximum+" element";return 1!=e.maximum&&(n+="e"),n},noResults:function(){return"Nuk u gjet asnjë rezultat"},searching:function(){return"Duke kërkuar…"},removeAllItems:function(){return"Hiq të gjitha sendet"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sr-Cyrl",[],function(){function n(n,e,r,u){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:u}return{errorLoading:function(){return"Преузимање није успело."},inputTooLong:function(e){var r=e.input.length-e.maximum,u="Обришите "+r+" симбол";return u+=n(r,"","а","а")},inputTooShort:function(e){var r=e.minimum-e.input.length,u="Укуцајте бар још "+r+" симбол";return u+=n(r,"","а","а")},loadingMore:function(){return"Преузимање још резултата…"},maximumSelected:function(e){var r="Можете изабрати само "+e.maximum+" ставк";return r+=n(e.maximum,"у","е","и")},noResults:function(){return"Ништа није пронађено"},searching:function(){return"Претрага…"},removeAllItems:function(){return"Уклоните све ставке"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sr",[],function(){function n(n,e,r,t){return n%10==1&&n%100!=11?e:n%10>=2&&n%10<=4&&(n%100<12||n%100>14)?r:t}return{errorLoading:function(){return"Preuzimanje nije uspelo."},inputTooLong:function(e){var r=e.input.length-e.maximum,t="Obrišite "+r+" simbol";return t+=n(r,"","a","a")},inputTooShort:function(e){var r=e.minimum-e.input.length,t="Ukucajte bar još "+r+" simbol";return t+=n(r,"","a","a")},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(e){var r="Možete izabrati samo "+e.maximum+" stavk";return r+=n(e.maximum,"u","e","i")},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"},removeAllItems:function(){return"Уклоните све ставке"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(n){return"Vänligen sudda ut "+(n.input.length-n.maximum)+" tecken"},inputTooShort:function(n){return"Vänligen skriv in "+(n.minimum-n.input.length)+" eller fler tecken"},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(n){return"Du kan max välja "+n.maximum+" element"},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"},removeAllItems:function(){return"Ta bort alla objekt"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/th",[],function(){return{errorLoading:function(){return"ไม่สามารถค้นข้อมูลได้"},inputTooLong:function(n){return"โปรดลบออก "+(n.input.length-n.maximum)+" ตัวอักษร"},inputTooShort:function(n){return"โปรดพิมพ์เพิ่มอีก "+(n.minimum-n.input.length)+" ตัวอักษร"},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(n){return"คุณสามารถเลือกได้ไม่เกิน "+n.maximum+" รายการ"},noResults:function(){return"ไม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"},removeAllItems:function(){return"ลบรายการทั้งหมด"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;e.define("select2/i18n/tk",[],function(){return{errorLoading:function(){return"Netije ýüklenmedi."},inputTooLong:function(e){return e.input.length-e.maximum+" harp bozuň."},inputTooShort:function(e){return"Ýene-de iň az "+(e.minimum-e.input.length)+" harp ýazyň."},loadingMore:function(){return"Köpräk netije görkezilýär…"},maximumSelected:function(e){return"Diňe "+e.maximum+" sanysyny saýlaň."},noResults:function(){return"Netije tapylmady."},searching:function(){return"Gözlenýär…"},removeAllItems:function(){return"Remove all items"}}}),e.define,e.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/tr",[],function(){return{errorLoading:function(){return"Sonuç yüklenemedi"},inputTooLong:function(n){return n.input.length-n.maximum+" karakter daha girmelisiniz"},inputTooShort:function(n){return"En az "+(n.minimum-n.input.length)+" karakter daha girmelisiniz"},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(n){return"Sadece "+n.maximum+" seçim yapabilirsiniz"},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"},removeAllItems:function(){return"Tüm öğeleri kaldır"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/uk",[],function(){function n(n,e,u,r){return n%100>10&&n%100<15?r:n%10==1?e:n%10>1&&n%10<5?u:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(e){return"Будь ласка, видаліть "+(e.input.length-e.maximum)+" "+n(e.maximum,"літеру","літери","літер")},inputTooShort:function(n){return"Будь ласка, введіть "+(n.minimum-n.input.length)+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(e){return"Ви можете вибрати лише "+e.maximum+" "+n(e.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"},removeAllItems:function(){return"Видалити всі елементи"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/vi",[],function(){return{inputTooLong:function(n){return"Vui lòng xóa bớt "+(n.input.length-n.maximum)+" ký tự"},inputTooShort:function(n){return"Vui lòng nhập thêm từ "+(n.minimum-n.input.length)+" ký tự trở lên"},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(n){return"Chỉ có thể chọn được "+n.maximum+" lựa chọn"},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"},removeAllItems:function(){return"Xóa tất cả các mục"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(n){return"请删除"+(n.input.length-n.maximum)+"个字符"},inputTooShort:function(n){return"请再输入至少"+(n.minimum-n.input.length)+"个字符"},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(n){return"最多只能选择"+n.maximum+"个项目"},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"},removeAllItems:function(){return"删除所有项目"}}}),n.define,n.require}();

View File

@@ -0,0 +1,3 @@
/*! Select2 4.0.10 | https://github.com/select2/select2/blob/master/LICENSE.md */
!function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var n=jQuery.fn.select2.amd;n.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(n){return"請刪掉"+(n.input.length-n.maximum)+"個字元"},inputTooShort:function(n){return"請再輸入"+(n.minimum-n.input.length)+"個字元"},loadingMore:function(){return"載入中…"},maximumSelected:function(n){return"你只能選擇最多"+n.maximum+"項"},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"},removeAllItems:function(){return"刪除所有項目"}}}),n.define,n.require}();

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long