Skip to content

Commit 61f1f5a

Browse files
author
Marius Cramer
committed
- ported patches
1 parent e956aca commit 61f1f5a

23 files changed

+223
-63
lines changed

install/sql/ispconfig3.sql

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1621,6 +1621,8 @@ CREATE TABLE `sys_group` (
16211621
CREATE TABLE `sys_ini` (
16221622
`sysini_id` int(11) unsigned NOT NULL auto_increment,
16231623
`config` longtext,
1624+
`default_logo` text NOT NULL,
1625+
`custom_logo` text NOT NULL,
16241626
PRIMARY KEY (`sysini_id`)
16251627
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
16261628

@@ -2369,7 +2371,7 @@ INSERT INTO `sys_group` (`groupid`, `name`, `description`, `client_id`) VALUES (
23692371
-- Dumping data for table `sys_ini`
23702372
--
23712373

2372-
INSERT INTO `sys_ini` (`sysini_id`, `config`) VALUES (1, '');
2374+
INSERT INTO `sys_ini` (`sysini_id`, `config`, `default_logo`, `custom_logo`) VALUES (1, '', 'data:image/png;base64,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', '');
23732375

23742376
-- --------------------------------------------------------
23752377

interface/lib/classes/functions.inc.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,15 @@ public function is_allowed_group($groupname, $restrict_names = false) {
380380

381381
return true;
382382
}
383+
384+
public function getimagesizefromstring($string){
385+
if (!function_exists('getimagesizefromstring')) {
386+
$uri = 'data://application/octet-stream;base64,' . base64_encode($string);
387+
return getimagesize($uri);
388+
} else {
389+
return getimagesizefromstring($string);
390+
}
391+
}
383392

384393
}
385394

interface/lib/classes/tform_base.inc.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -810,6 +810,9 @@ function filterField($field_name, $field_value, $filters, $filter_event) {
810810
case 'IDNTOUTF8':
811811
$returnval = $app->functions->idn_decode($returnval);
812812
break;
813+
case 'TRIM':
814+
$returnval = trim($returnval);
815+
break;
813816
default:
814817
$this->errorMessage .= "Unknown Filter: ".$filter['type'];
815818
break;

interface/web/admin/system_config_edit.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,17 @@ function onShowEnd() {
9696

9797
if($available_dashlets_txt == '') $available_dashlets_txt = '------';
9898
$app->tpl->setVar("available_dashlets_txt", $available_dashlets_txt);
99+
100+
// Logo
101+
$sys_ini = $app->db->queryOneRecord("SELECT * FROM sys_ini WHERE sysini_id = ?", $this->id);
102+
if($sys_ini['custom_logo'] != ''){
103+
$logo = '<img src="'.$sys_ini['custom_logo'].'" />&nbsp;&nbsp;<a href="#" class="btn btn-default formbutton-danger formbutton-narrow" style="margin:5px" id="del_custom_logo"><span class="icon icon-delete"></span></a>';
104+
} else {
105+
$logo = '<img src="'.$sys_ini['default_logo'].'" />';
106+
}
107+
$default_logo = '<img src="'.$sys_ini['default_logo'].'" />';
108+
$app->tpl->setVar("used_logo", $logo);
109+
$app->tpl->setVar("default_logo", $default_logo);
99110

100111
parent::onShowEnd();
101112
}
@@ -183,6 +194,20 @@ function onUpdateSave($sql) {
183194
"FROM web_domain WHERE type NOT IN ('subdomain','vhostsubdomain')";
184195
$app->db->query($sql);
185196
}
197+
198+
//die(print_r($_FILES));
199+
// Logo
200+
/*
201+
if(isset($_FILES['file']['name']) && is_uploaded_file($_FILES['file']['tmp_name'])){
202+
//print_r($_FILES);
203+
204+
$path= $_FILES['file']['tmp_name'];
205+
$type = pathinfo($path, PATHINFO_EXTENSION);
206+
$data = file_get_contents($path);
207+
$base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
208+
$app->db->query("UPDATE sys_ini SET custom_logo = ? WHERE sysini_id = ?", $base64, $this->id);
209+
}
210+
*/
186211

187212
// Maintenance mode
188213
if($server_config_array['misc']['maintenance_mode'] == 'y'){

interface/web/admin/templates/system_config_domains_edit.htm

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1+
<tmpl_if name="list_head_txt">
12
<div class='page-header'>
2-
<h1><tmpl_var name="list_head_txt"></h1>
3+
<h1><tmpl_var name="list_head_txt"></h1>
34
</div>
4-
<p><tmpl_var name="list_desc_txt"></p>
5+
</tmpl_if>
6+
<tmpl_if name="list_desc_txt"><p><tmpl_var name="list_desc_txt"></p></tmpl_if>
57

6-
7-
88
<div class="form-group">
99
<div style="float:left;width:100%">
1010
<p class="label" style="width:270px">{tmpl_var name='use_domain_module_txt'}</p>

interface/web/admin/templates/system_config_misc_edit.htm

Lines changed: 84 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,14 @@ <h1><tmpl_var name="list_head_txt"></h1>
33
</div>
44
<p><tmpl_var name="list_desc_txt"></p>
55

6-
7-
<legend>Misc</legend>
6+
<div class="form-group">
7+
<label for="file" class="col-sm-3 control-label">{tmpl_var name='logo_txt'}</label>
8+
<div class="col-sm-3 col-text"><input name="file" id="file" size="30" type="file" class="fileUpload" /></div><div class="col-sm-6"><button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" id="start_upload">{tmpl_var name='upload_txt'}</button></div>
9+
</div>
10+
<div class="form-group">
11+
<label for="dashboard_atom_url_admin" class="col-sm-3 control-label">{tmpl_var name='used_logo_txt'}</label>
12+
<div class="col-sm-9" id="used_logo">{tmpl_var name='used_logo'}</div>
13+
</div>
814
<div class="form-group">
915
<label for="dashboard_atom_url_admin" class="col-sm-3 control-label">{tmpl_var name='dashboard_atom_url_admin_txt'}</label>
1016
<div class="col-sm-9"><input type="text" name="dashboard_atom_url_admin" id="dashboard_atom_url_admin" value="{tmpl_var name='dashboard_atom_url_admin'}" size="" maxlength="" class="form-control" /></div></div>
@@ -98,9 +104,83 @@ <h1><tmpl_var name="list_head_txt"></h1>
98104
{tmpl_var name='maintenance_mode'}
99105
</div>
100106
</div>
107+
108+
<tmpl_if name="msg">
109+
<div id="OKMsg"><p><tmpl_var name="msg"></p></div>
110+
</tmpl_if>
111+
<tmpl_if name="error">
112+
<div id="errorMsg"><h3>ERROR</h3><ol><tmpl_var name="error"></ol></div>
113+
</tmpl_if>
101114

102-
<input type="hidden" name="id" value="{tmpl_var name='id'}">
115+
<input type="hidden" name="id" id="id" value="{tmpl_var name='id'}">
103116
<div class="clear"><div class="right">
104117
<button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/system_config_edit.php">{tmpl_var name='btn_save_txt'}</button>
105118
<button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/server_list.php">{tmpl_var name='btn_cancel_txt'}</button>
106-
</div></div>
119+
</div></div>
120+
<script language="JavaScript" type="text/javascript">
121+
var defaultLogo = '{tmpl_var name='default_logo'}';
122+
$(document).on('click', '#del_custom_logo', function(){
123+
delCustomLogo();
124+
});
125+
126+
function delCustomLogo() {
127+
var id = jQuery('input[name="id"]').val();
128+
129+
jQuery.getJSON('admin/ajax_get_json.php'+ '?' + Math.round(new Date().getTime()), {'id': id, 'type': "delcustomlogo"}, function(data) {
130+
//console.log(data);
131+
$('#used_logo').html(defaultLogo);
132+
$('#logo').css({ "background": "url("+data.data+") no-repeat", "width": data.width, "height": data.height });
133+
});
134+
}
135+
136+
// Variable to store your files
137+
var files;
138+
// Add events
139+
$('input[type="file"]').on('change', prepareUpload);
140+
$('#start_upload').on('click', uploadFiles);
141+
142+
// Grab the files and set them to our variable
143+
function prepareUpload(event){
144+
files = event.target.files;
145+
}
146+
147+
// Catch the form submit and upload the files
148+
function uploadFiles(event){
149+
event.stopPropagation(); // Stop stuff happening
150+
event.preventDefault(); // Totally stop stuff happening
151+
152+
var id = jQuery('input[name="id"]').val();
153+
154+
// Create a formdata object and add the files
155+
var data = new FormData();
156+
$.each(files, function(key, value){
157+
data.append(key, value);
158+
});
159+
160+
$.ajax({
161+
url: 'admin/ajax_get_json.php?id='+id+'&type=uploadfile',
162+
type: 'POST',
163+
data: data,
164+
cache: false,
165+
dataType: 'json',
166+
processData: false, // Don't process the files
167+
contentType: false, // Set content type to false as jQuery will tell the server its a query string request
168+
success: function(data, textStatus, jqXHR){
169+
if(typeof data.error === 'undefined'){
170+
// Success so call function to process the form
171+
//console.log(data);
172+
$('#used_logo').html('<img src="'+data.data+'" />&nbsp;&nbsp;<a href="#" class="btn btn-default formbutton-danger formbutton-narrow" style="margin:5px" id="del_custom_logo"><span class="icon icon-delete"></span></a>');
173+
$('#logo').css({ "background": "url("+data.data+") no-repeat", "width": data.width, "height": data.height });
174+
} else {
175+
// Handle errors here
176+
//console.log(data);
177+
}
178+
},
179+
error: function(jqXHR, textStatus, errorThrown){
180+
// Handle errors here
181+
//console.log(data);
182+
}
183+
});
184+
}
185+
186+
</script>

interface/web/client/form/client.tform.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,10 @@
116116
'maxlength' => '255',
117117
'rows' => '',
118118
'cols' => '',
119-
'searchable' => 1
119+
'searchable' => 1,
120+
'filters' => array( 0 => array( 'event' => 'SAVE',
121+
'type' => 'TRIM'),
122+
),
120123
),
121124
'contact_name' => array (
122125
'datatype' => 'VARCHAR',
@@ -131,7 +134,10 @@
131134
'maxlength' => '255',
132135
'rows' => '',
133136
'cols' => '',
134-
'searchable' => 1
137+
'searchable' => 1,
138+
'filters' => array( 0 => array( 'event' => 'SAVE',
139+
'type' => 'TRIM'),
140+
),
135141
),
136142
'customer_no' => array (
137143
'datatype' => 'VARCHAR',

interface/web/client/form/reseller.tform.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,10 @@
116116
'maxlength' => '255',
117117
'rows' => '',
118118
'cols' => '',
119-
'searchable' => 1
119+
'searchable' => 1,
120+
'filters' => array( 0 => array( 'event' => 'SAVE',
121+
'type' => 'TRIM'),
122+
),
120123
),
121124
'contact_name' => array (
122125
'datatype' => 'VARCHAR',
@@ -131,7 +134,10 @@
131134
'maxlength' => '255',
132135
'rows' => '',
133136
'cols' => '',
134-
'searchable' => 1
137+
'searchable' => 1,
138+
'filters' => array( 0 => array( 'event' => 'SAVE',
139+
'type' => 'TRIM'),
140+
),
135141
),
136142
'customer_no' => array (
137143
'datatype' => 'VARCHAR',

interface/web/client/templates/client_circle_edit.htm

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
<tmpl_if name="list_head_txt">
12
<div class='page-header'>
23
<h1><tmpl_var name="list_head_txt"></h1>
34
</div>
4-
<p><tmpl_var name="list_desc_txt"></p>
5+
</tmpl_if>
6+
<tmpl_if name="list_desc_txt"><p><tmpl_var name="list_desc_txt"></p></tmpl_if>
57

68

7-
<legend>{tmpl_var name='circle_txt'}</legend>
89
<div class="form-group">
910
<label for="circle_name" class="col-sm-3 control-label">{tmpl_var name='circle_name_txt'}*</label>
1011
<div class="col-sm-9"><input type="text" name="circle_name" id="circle_name" value="{tmpl_var name='circle_name'}" class="form-control" /></div></div>

interface/web/client/templates/client_edit_limits.htm

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
1+
<tmpl_if name="list_head_txt">
12
<div class='page-header'>
23
<h1><tmpl_var name="list_head_txt"></h1>
34
</div>
4-
<p><tmpl_var name="list_desc_txt"></p>
5+
</tmpl_if>
6+
<tmpl_if name="list_desc_txt"><p><tmpl_var name="list_desc_txt"></p></tmpl_if>
57

68
<div class="panel panel_client">
7-
8-
<div class="pnl_toolsarea">
9-
<p class="fieldset-legend">{tmpl_var name="toolsarea_head_txt"}</p>
10-
<div class="buttons topbuttons">
11-
<button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='add_additional_template_txt'}" onclick="ISPConfig.addAdditionalTemplate();">{tmpl_var name='add_additional_template_txt'}</button>
12-
</div>
13-
14-
</div>
15-
16-
<div class="pnl_formsarea">
17-
<legend>Limits</legend>
9+
10+
<div class="pnl_formsarea">
11+
<fieldset class="inlineLabels"><legend>Limits</legend>
1812
<div class="form-group">
1913
<label for="template_master" class="col-sm-3 control-label">{tmpl_var name='template_master_txt'}</label>
2014
<div class="col-sm-9"><select name="template_master" id="template_master" class="form-control">
@@ -27,9 +21,12 @@ <h1><tmpl_var name="list_head_txt"></h1>
2721
{tmpl_var name='tpl_add_select'}
2822
</select></div>
2923
</div>
24+
<div class="clear"><div class="right">
25+
<button class="btn btn-default formbutton-success" type="button" onclick="ISPConfig.addAdditionalTemplate();">{tmpl_var name="add_additional_template_txt"}</button>
26+
</div></div>
3027
<div class="form-group">
3128
<label class="col-sm-3 control-label">{tmpl_var name='active_template_additional_txt'}</label>
32-
<div id="template_additional_list" class="multiField">
29+
<div id="template_additional_list" class="col-sm-9 col-text">
3330
<ul>
3431
{tmpl_var name='template_additional_list'}
3532
</ul>

0 commit comments

Comments
 (0)