Page Menu
Home
In-Portal Phabricator
Search
Configure Global Search
Log In
Files
F785523
advanced
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, Feb 12, 1:12 PM
Size
11 KB
Mime Type
text/x-diff
Expires
Fri, Feb 14, 1:12 PM (1 d, 5 h)
Engine
blob
Format
Raw Data
Handle
564502
Attached To
rTADV Themes.Advanced
advanced
View Options
Index: branches/1.0.x/platform/inc/script.js
===================================================================
--- branches/1.0.x/platform/inc/script.js (revision 13606)
+++ branches/1.0.x/platform/inc/script.js (revision 13607)
@@ -1,223 +1,216 @@
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
function update_checkbox(cb, cb_hidden) {
cb_hidden.value = cb.checked ? 1 : 0;
}
function redirect($url) {
window.location.href = $url;
}
function open_window($url, $window_name, $width, $height) {
window.open($url, $window_name, 'width='+$width+',height='+$height+',resizable=yes');
return false;
}
function addLoadEvent(func, wnd) {
if (!wnd) wnd = window
var oldonload = wnd.onload;
if (typeof wnd.onload != 'function') {
wnd.onload = func;
} else {
wnd.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
function addEvent(el, evname, func, traditional) {
if (traditional) {
eval('el.on'+evname+'='+func);
return;
}
if (document.all) {
el.attachEvent("on" + evname, func);
} else {
el.addEventListener(evname, func, true);
}
};
// ItemCategories class
function ItemCategories($table_id, $field_id, $primary_category, $phrases) {
this.CategoryTable = document.getElementById($table_id);
this.CategorySelector = document.getElementById($field_id + '_select');
this.MoreCategoriesField = document.getElementById($field_id);
this.PrimaryCategory = $primary_category;
this.Phrases = $phrases;
// get additional categories from item
if (this.MoreCategoriesField.value.length) {
this.MoreCategories = this.MoreCategoriesField.value;
this.MoreCategories = this.MoreCategories.substring(1, this.MoreCategories.length - 1).split('|');
}
else {
this.MoreCategories = new Array ();
}
}
ItemCategories.prototype.AddCategory = function($separator, $delete_button, $max_categories) {
var $category_id = this.CategorySelector.options[this.CategorySelector.selectedIndex].value;
- var $category_name = this.CategorySelector.options[this.CategorySelector.selectedIndex].innerHTML.trim();
+ var $category_name = this.CategorySelector.options[this.CategorySelector.selectedIndex].getAttribute('full_path');
if ((this.SearchCategory($category_id) !== false) || ($category_id == this.PrimaryCategory) || ($category_id == 0)) {
// don't add same category twice & don't allow to add item's primary category
alert(this.Phrases[1]);
return ;
}
if ((this.MoreCategories.length + 2) > $max_categories)
{
// don't add more category - $max_categories limit
alert(this.Phrases[0]);
return ;
}
- // strip trailing HTML spaces & separator
- var $separator_pos = $category_name.indexOf($separator);
- if ($separator_pos != -1) {
- $category_name = $category_name.substring($separator_pos + $separator.length);
- }
-
-
var $row = this.CategoryTable.insertRow(-1);
$row.id = 'category_' + $category_id;
var $cell = $row.insertCell(-1);
$cell.innerHTML = $category_name;
$cell = $row.insertCell(-1);
$cell.innerHTML = $delete_button.replace(/#CATEGORY_ID#/g, $category_id);
this.MoreCategories.push($category_id);
this.updateMoreCategoriesField();
}
ItemCategories.prototype.SearchCategory = function($category_id) {
var $i = 0;
while ($i < this.CategoryTable.rows.length) {
if (this.CategoryTable.rows[$i].id == 'category_' + $category_id) {
return $i;
}
$i++;
}
return false;
}
ItemCategories.prototype.DeleteCategory = function($category_id) {
var $row_index = this.SearchCategory($category_id);
if ($row_index !== false) {
this.CategoryTable.deleteRow($row_index);
var $i = 0;
while ($i < this.MoreCategories.length) {
if (this.MoreCategories[$i] == $category_id) {
this.MoreCategories.splice($i, 1);
break;
}
$i++;
}
this.updateMoreCategoriesField();
}
}
ItemCategories.prototype.updateMoreCategoriesField = function() {
this.MoreCategoriesField.value = this.MoreCategories.length ? '|' + this.MoreCategories.join('|') + '|' : '';
}
function jq($selector) {
return $selector.replace(/(\[|\]|\.|:)/g, '\\$1');
}
function MultiLanguageSelector($language_info, $current_language) {
this._languageInfo = $language_info;
this._currentLanguage = $current_language;
this._controls = new Array ();
var $me = this;
$(document).ready(
function() {
$me.init();
}
);
}
MultiLanguageSelector.prototype.init = function () {
var $i = 0;
var $me = this;
while ($i < this._controls.length) {
// set current language
$( jq('#' + this._controls[$i]) ).data('PrevLanguage', this._currentLanguage);
for (var $language_id in this._languageInfo) {
var $id = this.inputForLanguage(this._controls[$i], $language_id);
$( jq('#' + $id + '_flag') ).each(
function() {
$(this)
.data('MainControl', $me._controls[$i])
.data('ThisLanguage', $language_id)
.click(
function ($event) {
var $this_flag = $(this);
var $this_language = $this_flag.data('ThisLanguage');
var $main_control = $('#' + jq($this_flag.data('MainControl')) );
var $prev_language = $main_control.data('PrevLanguage');
var $prev_flag = $( jq('#' + $me.inputForLanguage($main_control.attr('id'), $prev_language) + '_flag') );
var $language_info;
if ($this_language != $prev_language) {
// hide prev language input + enable it's flag
var $prev_image = $prev_flag.children('img:first');
if ($prev_image.length) {
// found image for given language
$language_info = $me._languageInfo[$prev_language];
$prev_image.attr('src', $prev_image.attr('src').replace($language_info.off, $language_info.on));
}
$( jq('#' + $prev_flag.attr('id').replace(/_flag$/, '_input') ) ).hide();
// show this language input + disable it's flag
var $this_image = $this_flag.children('img:first');
if ($this_image.length) {
// found image for given language
$language_info = $me._languageInfo[$this_language];
$this_image.attr('src', $this_image.attr('src').replace($language_info.on, $language_info.off));
}
var $this_container = $( jq('#' + $this_flag.attr('id').replace(/_flag$/, '_input') ) );
$this_container.show();
// focus on shown control
$('input:first, textarea:first', $this_container).focus();
// remember last used language
$main_control.data('PrevLanguage', $this_language);
}
$event.preventDefault();
}
);
}
);
}
$i++;
}
}
MultiLanguageSelector.prototype.inputForLanguage = function ($control_id, $language_id) {
return $control_id.replace('l' + this._currentLanguage + '_', 'l' + $language_id + '_');
}
MultiLanguageSelector.prototype.registerControl = function ($id) {
this._controls.push($id);
}
Index: branches/1.0.x/platform/elements/categories.elm.tpl
===================================================================
--- branches/1.0.x/platform/elements/categories.elm.tpl (revision 13606)
+++ branches/1.0.x/platform/elements/categories.elm.tpl (revision 13607)
@@ -1,106 +1,106 @@
<!--## CATEGORY ELEMENT ##-->
<inp2:m_DefineElement name="category_element">
<td style="width: <inp2:ColumnWidth/>">
<table>
<tr>
<td class="directory-icon">
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/directory_icon.gif" width="22" height="17" alt="" /><br />
</td>
<td class="directory-text">
<inp2:m_if check="IsCurrent">
<strong><inp2:Field name="Name"/></strong> (<inp2:m_phrase name="lu_SubCats"/>: <inp2:SubCatCount/>)
<inp2:m_else/>
<!--## CHECK IF CATEGORY IS SYM. LINK POINTING TO OTHER CATEGORY ##-->
<inp2:m_if check="IsCategorySymLink">
<a href="<inp2:CategoryLink template="__default__" m_cat_page="1"/>" class="text-title"><i><inp2:Field name="Name"/> @</i></a> <span class="item-statistics">(<!--## <inp2:m_phrase name="lu_SubCats"/>: ##--><inp2:SubCatCount/> / <inp2:ItemCount/>)</span>
<inp2:m_else/>
<a href="<inp2:CategoryLink template="__default__" m_cat_page="1"/>" class="text-title"><inp2:Field name="Name"/></a> <span class="item-statistics">(<!--## <inp2:m_phrase name="lu_SubCats"/>: ##--><inp2:SubCatCount/> / <inp2:ItemCount/>)</span>
</inp2:m_if>
<!--## /CHECK IF CATEGORY IS SYM. LINK POINTING TO OTHER CATEGORY ##-->
</inp2:m_if>
<inp2:m_if check="Field" name="IsNew"><img src="<inp2:m_TemplatesBase module="In-Portal"/>img/icon_new.gif" alt="<inp2:m_Phrase name="lu_New" no_editing="1"/>"/></inp2:m_if>
<inp2:m_if check="IsEditorsPick"><img src="<inp2:m_TemplatesBase module="In-Portal"/>img/icon_pick.gif" alt="<inp2:m_Phrase name="lu_Pick" no_editing="1"/>"/></inp2:m_if>
<br />
<img src="<inp2:m_TemplatesBase module="In-Portal"/>img/s.gif" width="1" height="4" alt="" /><br />
<inp2:Field name="Description" first_chars="200"/>
<inp2:m_if check="m_Param" name="show_relevance">
<br/>
<inp2:m_if check="Field" name="Description"><br/></inp2:m_if>
<inp2:RelevanceIndicator on_color="Red" off_color="White" relevance_normal_render_as="search_relevance_normal" relevance_full_render_as="search_relevance_full" />
</inp2:m_if>
</td>
</tr>
</table>
</td>
</inp2:m_DefineElement>
<!--## /CATEGORY ELEMENT ##-->
<!--## NO CATEGORIES ELEMENT ##-->
<inp2:m_DefineElement name="no_categories">
<inp2:m_phrase name="lu_NoCategories"/>
</inp2:m_DefineElement>
<!--## /NO CATEGORIES ELEMENT ##-->
<!--## NO CATEGORIES ELEMENT ##-->
<inp2:m_DefineElement name="related_category_element">
<!--## CHECK IF CATEGORY IS SYM. LINK POINTING TO OTHER CATEGORY ##-->
<li>
<inp2:m_if check="IsCategorySymLink">
<a href="<inp2:CategoryLink template="__default__" m_cat_page="1"/>" class="text-title"><i><inp2:Field name="Name"/> @</i></a>
<inp2:m_else/>
<a href="<inp2:CategoryLink template="__default__" m_cat_page="1"/>" class="text-title"><inp2:Field name="Name"/></a>
</inp2:m_if>
</li>
<!--## /CHECK IF CATEGORY IS SYM. LINK POINTING TO OTHER CATEGORY ##-->
</inp2:m_DefineElement>
<!--## /NO CATEGORIES ELEMENT ##-->
<inp2:m_DefineElement name="selector_category_element">
- <option value="<inp2:m_Param name="category_id"/>">
+ <option value="<inp2:m_Param name='category_id'/>" full_path="<inp2:m_Param name='full_path' html_escape='1'/>">
<inp2:m_Param name="separator"/><inp2:m_Param name="category_name"/>
</option>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="more_category_element">
<tr id="category_<inp2:m_Param name="category_id"/>">
<td>
- <inp2:m_Param name="category_name"/>
+ <inp2:m_Param name="full_path"/>
</td>
<td>
<input type="button" class="delete-button" value="<inp2:m_Phrase label="lu_btn_Delete" no_editing="1"/>" onclick="$ItemCategories.DeleteCategory(<inp2:m_Param name="category_id"/>);"/>
</td>
</tr>
</inp2:m_DefineElement>
<!--## SITEMAP ELEMENTS ##-->
<inp2:m_DefineElement name="more_link_elem">
<li>
<a href="<inp2:c_CategoryLink template='__default__' m_cat_page='1'/>" class="sub-category"><inp2:m_Phrase label="lu_more"/>...</a>
</li>
</inp2:m_DefineElement>
<inp2:m_DefineElement name="sitemap_category_element" level_var="sitemap_level" max_levels="0">
<li>
<a href="<inp2:CategoryLink template='__default__' m_cat_page='1'/>" class="sub-category"><inp2:Field name="Name" html_escape="1"/></a>
<inp2:m_ifnot check="m_Get" name="$level_var" equals_to="$max_levels">
<inp2:InitList requery="1" per_page="50"/>
<inp2:m_if check="TotalRecords">
<ul>
<inp2:m_Inc param="$level_var" by="1"/>
<inp2:PrintList render_as="sitemap_category_element" max_levels="$max_levels" more_link_render_as="more_link_elem"/>
</ul>
</inp2:m_if>
</inp2:m_ifnot>
</li>
</inp2:m_DefineElement>
<!--## //SITEMAP ELEMENTS ##-->
Event Timeline
Log In to Comment