| Current Path : /home/bonneesp/www/administrator/components/com_tabulizer/views/datasources/tmpl/ |
| Current File : /home/bonneesp/www/administrator/components/com_tabulizer/views/datasources/tmpl/form.php |
<?php
/**
* @version 6.5.0 tabulizer $
* @package tabulizer
* @copyright Copyright © 2011 - All rights reserved.
* @license GNU/GPL
* @author Dimitrios Mourloukos
* @author mail info@alterora.gr
* @website www.tabulizer.com
*
*/
// no direct access
defined('_JEXEC') or die('Restricted access');
$jinput = JFactory::getApplication()->input;
$option = $jinput->getCmd('option');
JHTML::_('behavior.tooltip');
JHTML::_('behavior.modal'); // for article selection popup
$return_url = $this->return_urls['data_sources'];
$archive_to_rulesets = $this->archive_to_rulesets;
$edit = $this->lists['edit'];
$text = !$edit ? JText::_('COM_TABULIZER_NEW' ) : JText::_('COM_TABULIZER_EDIT' );
JToolBarHelper::title( JText::_('COM_TABULIZER_DATA_SOURCE' ).': <small><small>[ ' . $text.' ]</small></small>','config' );
JToolBarHelper::save();
JToolBarHelper::custom( 'saveNew', 'save-new', 'save-new', JText::_('COM_TABULIZER_SAVE_AND_NEW'), false, false );
JToolBarHelper::custom( 'saveCopy', 'save-copy', 'save-copy', JText::_('COM_TABULIZER_SAVE_AS_COPY'), false, false );
if (!$edit) {
JToolBarHelper::cancel();
} else {
// for existing items the button is renamed `close`
JToolBarHelper::cancel( 'cancel', JText::_('COM_TABULIZER_CLOSE') );
}
JToolBarHelper::help( 'all_topics', true );
TabulizerUtils::opentipInit();
?>
<script language="javascript" type="text/javascript">
function validateAndSubmit() {
var form = document.adminForm;
var value, f_value, regex, valid = true, error_msg = "";
regex = /^[a-zA-Z0-9\._\-]{2,128}\<?php echo XML_FILE_EXT;?>$/i;
value = form.ds_ruleset_archive.value;
if (!regex.test(value)) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_RULESET_ARCHIVE_FILENAME');?>";
valid = false;
}
regex = /^[a-zA-Z0-9\._\-]{2,128}$/;
value = form.ds_ruleset_name.value;
if (!regex.test(value)) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_RULESET_NAME');?>";
valid = false;
}
regex = /^.{2,255}$/;
value = form.ds_title.value;
if (!regex.test(value)) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_TITLE');?>";
valid = false;
}
var regex_user_param_text = /({user_param_\d_url:text})|({user_param_\d:text})/gmi;
var source_type = form.ds_source_type.value;
if ((source_type == 'csv')||(source_type == 'excel')||(source_type == 'html')||(source_type == 'rss')||(source_type == 'json')) {
if (form.ds_filepath.value == '') {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_FILEPATH_OR_URL');?>";
valid = false;
} else if (regex_user_param_text.test(form.ds_filepath.value)) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_DATA_SOURCE_FILEPATH_USER_PARAM_TEXT_NOT_ALLOWED');?>";
valid = false;
}
}
switch (source_type) {
case 'csv':
break;
case 'excel':
if (form.ds_filepath.value != '') f_value = form.ds_filepath.value;
else f_value = false;
if (f_value) {
f_value = f_value.replace(/\s/g, "");
f_regex = new RegExp("^(.+)(xls|xlsx|ods)$","i");
if (!f_regex.test(f_value)) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_SHEET_FILE');?>";
valid = false;
}
$allow_remote_files = true;
if (!$allow_remote_files) {
f_url_regex = new RegExp("^(http|https)://", "i");
if (f_url_regex.test(f_value)) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_SHEET_FILE_URL');?>";
valid = false;
}
}
}
if (form.ds_sheet_name.value == '') {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_SHEET_NAME');?>";
valid = false;
}
if (form.ds_sheet_references.value != '') {
// placeholder for future use
}
if (form.ds_sheet_selection.value == '') {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_SHEET_SELECTION');?>";
valid = false;
} else {
f_value = form.ds_sheet_selection.value;
f_value = f_value.replace(/\s/g, "");
f_regex = new RegExp("^([a-zA-Z]{1,3})(\\d+):([a-zA-Z]{1,3})(\\d+)$","");
f_regex_b = new RegExp("^(\\d+)([a-zA-Z]{1,3}):(\\d+)([a-zA-Z]{1,3})$","");
if ((!f_regex.test(f_value))&&(!f_regex_b.test(f_value))&&(f_value.indexOf("{")==-1)) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_SHEET_SELECTION');?>";
valid = false;
}
}
break;
case 'database':
if (form.ds_query.value == '') {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_QUERY');?>";
valid = false;
} else if (regex_user_param_text.test(form.ds_query.value)) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_DATA_SOURCE_QUERY_USER_PARAM_TEXT_NOT_ALLOWED');?>";
valid = false;
}
break;
case 'external_database':
if (form.ds_edb_driver.value == '') {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_EDB_DRIVER');?>";
valid = false;
}
if (form.ds_edb_host.value == '') {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_EDB_HOST');?>";
valid = false;
}
if (form.ds_edb_user.value == '') {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_EDB_USER');?>";
valid = false;
}
if (form.ds_edb_password.value == '') {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_EDB_PASSWORD');?>";
valid = false;
}
if (form.ds_edb_database.value == '') {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_EDB_DATABASE');?>";
valid = false;
}
if (form.ds_query.value == '') {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_QUERY');?>";
valid = false;
} else if (regex_user_param_text.test(form.ds_query.value)) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_DATA_SOURCE_QUERY_USER_PARAM_TEXT_NOT_ALLOWED');?>";
valid = false;
}
break;
case 'html':
if (!form.ds_table_order.value) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_TABLE_ORDER');?>";
valid = false;
}
if ((form.ds_table_attribute_name.value == '') && (form.table_attribute_value.value != '')) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_TABLE_ATTRIBUTE');?>";
valid = false;
}
break;
case 'xml':
if (!form.ds_td_map.value) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_TD_MAP');?>";
valid = false;
}
break;
case 'rss':
if (form.ds_feed_type.selectedIndex < 0) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_FEED_TYPE');?>";
valid = false;
}
break;
case 'json':
break;
case 'article':
if (form.ds_article_id.value == '') {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_ARTICLE_ID');?>";
valid = false;
}
break;
case 'merger':
if (form.ds_merging_tree.value == '') {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_MERGING_TREE');?>";
valid = false;
}
break;
default:
error_msg = "Unknown source type: " + source_type;
valid = false;
break;
}
regex = /^\d+$/;
value = form.ds_cache_time.value;
if (!regex.test(value)) {
if (form.ds_cache_type.value != <?php echo TABULIZER_DATA_SOURCE_CACHE_OFF;?>) {
error_msg = error_msg + "\n* <?php echo JText::_('COM_TABULIZER_INVALID_DATA_SOURCE_CACHE_TIME');?>";
valid = false;
}
}
if (valid) {
form.submit();
} else {
error_msg = "<?php echo JText::_('COM_TABULIZER_JS_ERRORS_FOUND'); ?>" + error_msg;
alert(error_msg);
}
}
function updateSourceParams() {
var form = document.adminForm;
var show_keys, all_keys = new Array('ruleset_archive','ruleset_name','table_caption','table_summary','server_side','filepath','query','edb_driver','edb_host','edb_user','edb_password','edb_database','edb_prefix','article_id','merging_tree','sheet_name','sheet_references','sheet_selection','read_font','read_color','read_images','read_hyperlinks','boost','cellcache','remove_empty','separator','enclosure','consistency','strip_tags','table_order','table_attribute_name','table_attribute_value','td_map');
var source_type = form.ds_source_type.value;
switch (source_type) {
case 'csv': show_keys = new Array('ruleset_archive',
'ruleset_name',
'table_caption',
'table_summary',
'server_side',
'filepath',
'separator',
'enclosure',
'consistency');
break;
case 'excel': show_keys = new Array('ruleset_archive',
'ruleset_name',
'table_caption',
'table_summary',
'server_side',
'filepath',
'sheet_name',
'sheet_selection',
'sheet_references',
'read_font',
'read_color',
'read_images',
'read_hyperlinks',
'boost',
'cellcache',
'remove_empty');
break;
case 'database': show_keys = new Array('ruleset_archive',
'ruleset_name' ,
'table_caption',
'table_summary',
'server_side' ,
'query');
break;
case 'external_database': show_keys = new Array('ruleset_archive',
'ruleset_name',
'table_caption',
'table_summary',
'server_side',
'edb_driver',
'edb_host',
'edb_user',
'edb_password',
'edb_database',
'edb_prefix',
'query');
break;
case 'html': show_keys = new Array('ruleset_archive',
'ruleset_name' ,
'table_caption',
'table_summary',
'server_side' ,
'filepath',
'table_order',
'table_attribute_name',
'table_attribute_value');
break;
case 'xml': show_keys = new Array('ruleset_archive',
'ruleset_name' ,
'table_caption',
'table_summary',
'server_side' ,
'filepath',
'td_map');
break;
case 'rss': show_keys = new Array('ruleset_archive',
'ruleset_name' ,
'table_caption',
'table_summary',
'server_side' ,
'filepath',
'feed_type',
'encoding');
break;
case 'json': show_keys = new Array('ruleset_archive',
'ruleset_name' ,
'table_caption',
'table_summary',
'server_side' ,
'filepath',
'encoding');
break;
case 'article': show_keys = new Array('ruleset_archive',
'ruleset_name' ,
'table_caption',
'table_summary',
'server_side' ,
'article_id',
'separator',
'enclosure',
'consistency',
'strip_tags');
break;
case 'merger': show_keys = new Array('ruleset_archive',
'ruleset_name' ,
'table_caption',
'table_summary',
'server_side' ,
'merging_tree');
break;
default:
show_keys = new Array();
break;
}
var i, el;
for (i = 0; i < all_keys.length; i++) {
el = document.getElementById('tr_'+all_keys[i]);
el.className="hidden_tr";
}
for (i = 0; i < show_keys.length; i++) {
el = document.getElementById('tr_'+show_keys[i]);
el.className="";
}
}
function TabulizerUpdateRulesetArchive(ruleset_archive_selection) {
var archive_to_rulesets = new Array();
<?php echo $archive_to_rulesets; ?>
var archive_filename = ruleset_archive_selection.value;
var ruleset_select = document.getElementById("ds_ruleset_name");
var rulesets, ruleset_count = 0;
if (archive_filename) {
rulesets = archive_to_rulesets[archive_filename];
if (rulesets) {
ruleset_count = 0;
ruleset_select.options.length = 0;
for(index in rulesets) {
ruleset_select.options[ruleset_select.options.length] = new Option(rulesets[index], index);
ruleset_count++;
}
if (ruleset_count == 0) {
ruleset_select.options[ruleset_select.options.length] = new Option("<?php echo JText::_('COM_TABULIZER_NONE');?>", 0);
}
}
if (typeof jtQuery != 'undefined') {
jtQuery("#ds_ruleset_name").trigger("liszt:updated");
}
}
}
function updateCacheType() {
var cache_type = document.getElementById('ds_cache_type');
var cache_time = document.getElementById('ds_cache_time');
if (cache_type.value != <?php echo TABULIZER_DATA_SOURCE_CACHE_OFF;?>) cache_time.disabled = false; else cache_time.disabled = true;
}
function TabulizerUpdateSheetReferences(ref_type) {
var custom_references = document.getElementById("ds_sheet_references_custom");
if (ref_type.value == "none") {
document.getElementById("ds_sheet_references").value = "";
custom_references.style.display="none";
} else if (ref_type.value == "all") {
document.getElementById("ds_sheet_references").value = "all";
custom_references.style.display="none";
} else {
if (document.getElementById("ds_sheet_references").value == "all") {
document.getElementById("ds_sheet_references").value = "";
}
custom_references.style.display="block";
}
}
function jSelectArticle(id, title, object) {
document.getElementById('ds_article_id').value = id;
document.getElementById('sbox-window').close();
}
<?php if(version_compare(JVERSION,'1.6.0','ge')) { ?>
Joomla.submitbutton = function(pressbutton) {
if (pressbutton == 'save') {
validateAndSubmit();
} else if (pressbutton == 'saveNew') {
document.getElementById('addnew').value = '1';
validateAndSubmit();
} else if (pressbutton == 'saveCopy') {
document.getElementById('addcopy').value = '1';
validateAndSubmit();
} else if (pressbutton == 'cancel') {
window.location = "<?php echo $return_url;?>";
}
}
<?php } else { ?>
function submitbutton(pressbutton) {
if (pressbutton == 'save') {
validateAndSubmit();
} else if (pressbutton == 'saveNew') {
document.getElementById('addnew').value = '1';
validateAndSubmit();
} else if (pressbutton == 'saveCopy') {
document.getElementById('addcopy').value = '1';
validateAndSubmit();
} else if (pressbutton == 'cancel') {
window.location = "<?php echo $return_url;?>";
}
}
<?php } ?>
</script>
<form action="index.php" method="post" name="adminForm" id="adminForm">
<div class="col edit_frm_div">
<fieldset class="adminform">
<legend><?php echo JText::_('COM_TABULIZER_DATA_SOURCE_DETAILS' ); ?></legend>
<table class="admintable">
<tr class="row1">
<td class="key">
<?php echo JText::_('COM_TABULIZER_DATA_SOURCE_TAG' ); ?>:
</td>
<td>
<?php echo $this->lists['tag']; ?>
</td>
</tr>
<tr class="row0">
<td class="key">
<?php echo JText::_('COM_TABULIZER_DATA_SOURCE_TITLE' ); ?>:
</td>
<td>
<?php echo $this->lists['title']; ?>
</td>
</tr>
<tr class="row1">
<td class="key">
<?php echo JText::_('COM_TABULIZER_DATA_SOURCE_TYPE' ); ?>:
</td>
<td>
<?php echo $this->lists['source_type']; ?>
</td>
</tr>
<tr class="row0">
<td class="key">
<?php echo JText::_('COM_TABULIZER_DATA_SOURCE_PARAMS' ); ?>:
</td>
<td>
<?php echo $this->lists['source_params']; ?>
</td>
</tr>
<tr class="row1">
<td class="key">
<?php echo JText::_('COM_TABULIZER_DATA_SOURCE_CACHE' ); ?>:
</td>
<td>
<?php echo $this->lists['cache_params']; ?>
</td>
</tr>
</table>
</fieldset>
</div>
<div class="clr"></div>
<input type="hidden" name="option" value="com_tabulizer" />
<input type="hidden" name="task" value="saveDataSource" />
<input type="hidden" name="addnew" id="addnew" value="0" />
<input type="hidden" name="addcopy" id="addcopy" value="0" />
<?php echo $this->lists['id']; ?>
<?php echo JHTML::_( 'form.token' ); ?>
</form>