Commit d9ad9cbf authored by Henning Leutz's avatar Henning Leutz 🥋

Revert "Revert "Merge branch 'dev' of https://dev.quiqqer.com/quiqqer/quiqqer into dev""

This reverts commit b5866929
parent 24ff4223
......@@ -4,6 +4,7 @@
* Create a new project
*
* @param string $params - JSON Array
*
* @return string - Name of the project
*/
QUI::$Ajax->registerFunction(
......@@ -16,6 +17,25 @@ QUI::$Ajax->registerFunction(
$params['lang']
);
if (isset($params['template']) && !empty($params['template'])) {
$Config = QUI::getProjectManager()->getConfig();
$installedTemplates = QUI::getPackageManager()->getInstalled([
'type' => 'quiqqer-template'
]);
$template = $params['template'];
$template = \QUI\Utils\Security\Orthos::removeHTML($template);
$template = \QUI\Utils\Security\Orthos::clearPath($template);
$Config->set($Project->getName(), 'template', $template);
$Config->save();
}
if (isset($params['demodata']) && $params['demodata']) {
\QUI\Utils\Project::applyDemoDataToProject($Project, $template);
}
return $Project->getName();
},
['params'],
......
......@@ -58,6 +58,16 @@
</select>
</td>
</tr>
<tr class="even">
<td>
<label for="">
{t}quiqqer/system demodata.project.label.template{/t}
</label>
</td>
<td>
<input type="checkbox" name="demodata" />
</td>
</tr>
</tbody>
</table>
......
......@@ -3,11 +3,8 @@
*
* @module DownloadManager
* @author www.pcsg.de (Henning Leutz)
*
* @require classes/request/Downloads
*/
define(['classes/request/Downloads'], function (DownloadManager) {
define('DownloadManager', ['classes/request/Downloads'], function (DownloadManager) {
"use strict";
return new DownloadManager();
......
......@@ -3,9 +3,8 @@
*
* @module UploadManager
* @author www.pcsg.de (Henning Leutz)
* @require controls/upload/Manager
*/
define(['controls/upload/Manager'], function (UploadManager) {
define('UploadManager', ['controls/upload/Manager'], function (UploadManager) {
"use strict";
return new UploadManager();
......
......@@ -155,9 +155,10 @@ define('classes/projects/Manager', [
* @param {String} project
* @param {String} lang
* @param {String} template
* @param demodata
* @param {Function} [onfinish]
*/
createNewProject: function (project, lang, template, onfinish) {
createNewProject: function (project, lang, template, demodata, onfinish) {
var self = this;
this.$getList = null;
......@@ -173,7 +174,8 @@ define('classes/projects/Manager', [
params: JSON.encode({
project : project,
lang : lang,
template: template
template: template,
demodata: demodata
})
});
},
......
This diff is collapsed.
......@@ -270,6 +270,7 @@ define('controls/projects/Manager', [
Form.elements.project.value,
Form.elements.lang.value,
Form.elements.template.value,
Form.elements.demodata.value,
function (result) {
self.Loader.hide();
......
......@@ -64,4 +64,26 @@
line-height: 36px !important;
margin: 0 !important;
width: 40px !important;
}
.quiqqer-project-panel .qui-panel-icon {
display: none;
}
.quiqqer-project-panel h2.qui-panel-title {
padding-left: 10px;
}
.quiqqer-project-panel-button-home {
width: 40px;
}
.quiqqer-project-panel-button-home .image-container {
float: left;
text-align: center;
width: 100%;
}
.quiqqer-project-panel-button-home .image-container span {
float: none;
}
\ No newline at end of file
......@@ -68,7 +68,7 @@ define('controls/projects/project/Panel', [
name : 'projects-panel',
project: false,
lang : false,
icon : 'fa fa-home'
icon : false
});
this.parent(options);
......@@ -79,18 +79,18 @@ define('controls/projects/project/Panel', [
title: Locale.get('quiqqer/system', 'projects.project.panel.title')
});
this.$Map = null;
this.$Map = null;
this.$projectmaps = {};
this.$Filter = null;
this.$Button = null;
this.$Filter = null;
this.$Button = null;
this.$ProjectList = null;
this.$ProjectList = null;
this.$ProjectContainer = null;
this.$ProjectSearch = null;
this.$ProjectContent = null;
this.$ProjectSearch = null;
this.$ProjectContent = null;
this.$LanguageSelect = null;
this.$MediaButton = null;
this.$MediaButton = null;
this.$__fx_run = false;
......@@ -150,6 +150,8 @@ define('controls/projects/project/Panel', [
var self = this,
Content = this.getContent();
this.getElm().addClass('quiqqer-project-panel');
Content.set(
'html',
......@@ -163,9 +165,9 @@ define('controls/projects/project/Panel', [
Content.setStyle('opacity', 0);
this.$ProjectContainer = Content.getElement('.project-container');
this.$ProjectList = Content.getElement('.project-list');
this.$ProjectSearch = Content.getElement('.project-search');
this.$ProjectContent = Content.getElement('.project-content');
this.$ProjectList = Content.getElement('.project-list');
this.$ProjectSearch = Content.getElement('.project-search');
this.$ProjectContent = Content.getElement('.project-content');
this.$ProjectContainer.setStyles({
height: 'calc(100% - 40px)'
......@@ -305,7 +307,7 @@ define('controls/projects/project/Panel', [
// title button
this.$Button = new QUIButton({
name : 'projects',
image : 'fa fa-arrow-circle-left',
icon : 'fa fa-home',
title : Locale.get('quiqqer/system', 'projects.project.panel.projectSelect'),
events: {
onClick: function (Btn, event) {
......@@ -332,6 +334,7 @@ define('controls/projects/project/Panel', [
}
self.createList();
self.open();
}
}
}).inject(this.getHeader(), 'top');
......@@ -339,6 +342,7 @@ define('controls/projects/project/Panel', [
this.$Button.getElm().removeClass('qui-button');
this.$Button.getElm().addClass('button');
this.$Button.getElm().addClass('btn-blue');
this.$Button.getElm().addClass('quiqqer-project-panel-button-home');
},
/**
......@@ -366,24 +370,26 @@ define('controls/projects/project/Panel', [
self.openProject();
self.Loader.hide();
return;
} else if (Object.getLength(result)) {
for (key in result) {
if (!result.hasOwnProperty(key)) {
continue;
}
} else {
if (Object.getLength(result)) {
for (key in result) {
if (!result.hasOwnProperty(key)) {
continue;
}
if (result[key].standard !== "1") {
continue;
}
if (result[key].standard !== "1") {
continue;
self.setAttribute('project', key);
self.setAttribute('lang', result[key].default_lang);
break;
}
self.setAttribute('project', key);
self.setAttribute('lang', result[key].default_lang);
break;
self.openProject();
self.Loader.hide();
return;
}
self.openProject();
self.Loader.hide();
return;
}
// no projects exists
......@@ -676,7 +682,7 @@ define('controls/projects/project/Panel', [
onChildClick : this.$openSitePanel,
onChildContextMenu: function (Item, MapItem, event) {
var title = MapItem.getAttribute('text') + ' - ' +
MapItem.getAttribute('value');
MapItem.getAttribute('value');
MapItem.getContextMenu().setTitle(title).setPosition(
event.page.x,
......
/**
* @module controls/users/Login
*
* @event onLoad
* @event onAuthBegin
* @event onAuthNext
* @event onSuccess
* @event onAuthNext
* @event onUserLoginError [error, this]
* @event onLoad [self]
* @event onAuthBegin [self]
* @event onAuthNext [self]
* @event onSuccess [self]
* @event onUserLoginError [error, self]
*
* @event onQuiqqerUserAuthLoginLoad [self]
* @event onQuiqqerUserAuthLoginUserLoginError [error, self]
* @event onQuiqqerUserAuthLoginAuthBegin [self]
* @event onQuiqqerUserAuthLoginSuccess [self]
* @event onQuiqqerUserAuthNext [self]
*/
define('controls/users/Login', [
......@@ -91,6 +96,7 @@ define('controls/users/Login', [
QUIAjax.get('ajax_users_loginControl', function (result) {
self.$buildAuthenticator(result).then(function () {
self.fireEvent('load', [self]);
QUI.fireEvent('quiqqerUserAuthLoginLoad', [self]);
});
}, {
isAdminLogin : typeof QUIQQER_IS_ADMIN_LOGIN !== 'undefined' ? 1 : 0,
......@@ -111,6 +117,7 @@ define('controls/users/Login', [
this.$refreshForm();
this.fireEvent('load', [this]);
QUI.fireEvent('quiqqerUserAuthLoginLoad', [this]);
},
/**
......@@ -142,6 +149,7 @@ define('controls/users/Login', [
this.auth(Target).catch(function (err) {
self.fireEvent('userLoginError', [err, self]);
QUI.fireEvent('quiqqerUserAuthLoginUserLoginError', [err, self]);
});
}.bind(this)
}
......@@ -225,6 +233,7 @@ define('controls/users/Login', [
}
this.fireEvent('authBegin', [this]);
QUI.fireEvent('quiqqerUserAuthLoginAuthBegin', [this]);
return new Promise(function (resolve, reject) {
QUIAjax.post('ajax_users_login', function (result) {
......@@ -233,6 +242,7 @@ define('controls/users/Login', [
window.QUIQQER_USER = result.user;
self.fireEvent('success', [self]);
QUI.fireEvent('quiqqerUserAuthLoginSuccess', [self]);
resolve(self);
if (typeof self.getAttribute('onSuccess') === 'function') {
......@@ -277,7 +287,8 @@ define('controls/users/Login', [
),
onError : function (e) {
self.Loader.hide();
self.fireEvent('authNext', [this]);
self.fireEvent('authNext', [self]);
QUI.fireEvent('quiqqerUserAuthNext', [self]);
reject(e);
}
......
......@@ -4,10 +4,7 @@
* @author www.pcsg.de (Henning Leutz)
* @module controls/users/LogoutWindow
*
* @require qui/QUI
* @require qui/controls/windows/Confirm
* @require controls/users/Login
* @require Locale
* @event onQuiqqerUserAuthLogout
*/
define('controls/users/LogoutWindow', [
......@@ -64,6 +61,8 @@ define('controls/users/LogoutWindow', [
this.Loader.show();
Ajax.post('ajax_users_logout', function () {
QUI.fireEvent('quiqqerUserAuthLogout');
if (window.location.hash !== '') {
window.location.reload();
return;
......
......@@ -64,6 +64,7 @@
"quiqqer\/fontawesome": "*",
"quiqqer\/backendsearch": "1.*|dev-master|dev-dev",
"quiqqer\/requirements": "2.*",
"quiqqer\/demodata":"^1.0|dev-master|dev-dev",
"npm-asset\/intl": "1.*",
"npm-asset\/nouislider": "*",
"npm-asset\/mustache": "2.*",
......
......@@ -71,19 +71,15 @@ HEAD;
$geoIPSettings = <<<GEO
### SET GEOIP Variables ###
#fastcgi_param GEOIP_COUNTRY_CODE \$geoip_country_code;
#fastcgi_param GEOIP_COUNTRY_CODE3 \$geoip_country_code3;
#fastcgi_param GEOIP_COUNTRY_NAME \$geoip_country_name;
#fastcgi_param GEOIP_CITY_COUNTRY_CODE \$geoip_city_country_code;
#fastcgi_param GEOIP_CITY_COUNTRY_CODE3 \$geoip_city_country_code3;
#fastcgi_param GEOIP_CITY_COUNTRY_NAME \$geoip_city_country_name;
#fastcgi_param GEOIP_REGION \$geoip_region;
#fastcgi_param GEOIP_CITY \$geoip_city;
#fastcgi_param GEOIP_POSTAL_CODE \$geoip_postal_code;
#fastcgi_param GEOIP_CITY_CONTINENT_CODE \$geoip_city_continent_code;
#fastcgi_param GEOIP_LATITUDE \$geoip_latitude;
#fastcgi_param GEOIP_LONGITUDE \$geoip_longitude;
#fastcgi_param GEOIP_COUNTRY_CODE \$geoip2_data_country_code;
#fastcgi_param GEOIP_COUNTRY_NAME \$geoip2_data_country_name;
#fastcgi_param GEOIP_CITY_COUNTRY_CODE \$geoip2_data_city_country_code;
#fastcgi_param GEOIP_CITY_COUNTRY_NAME \$geoip2_data_city_country_name;
#fastcgi_param GEOIP_CITY \$geoip2_data_city_name;
#fastcgi_param GEOIP_POSTAL_CODE \$geoip2_data_postal_code;
#fastcgi_param GEOIP_CITY_CONTINENT_CODE \$geoip2_data_continent_code;
#fastcgi_param GEOIP_LATITUDE \$geoip2_data_location_longitude;
#fastcgi_param GEOIP_LONGITUDE \$geoip2_data_postal_code;
GEO;
file_put_contents($this->subConfDir."php.include", $geoIPSettings, FILE_APPEND);
......
......@@ -7,6 +7,7 @@
namespace QUI\Utils;
use QUI;
use QUI\Demodata\Parser\DemoDataParser;
/**
* Class Project
......@@ -52,7 +53,6 @@ class Project
$First->save();
}
// Search
$searchType = 'quiqqer/sitetypes:types/search';
......@@ -62,17 +62,17 @@ class Project
} catch (QUI\Exception $Exception) {
}
$search = $Project->getSitesIds(array(
'where' => array(
$search = $Project->getSitesIds([
'where' => [
'active' => -1,
'type' => $searchType
),
],
'limit' => 1
));
]);
if (empty($search)) {
try {
$searchId = $First->createChild(array(
$searchId = $First->createChild([
'name' => self::parseForUrl(
'quiqqer/quiqqer',
'projects.defaultstructure.search.name',
......@@ -83,7 +83,7 @@ class Project
'projects.defaultstructure.search.title',
$Project
)
));
]);
$Search = new QUI\Projects\Site\Edit($Project, $searchId);
$Search->setAttribute('type', $searchType);
......@@ -94,19 +94,18 @@ class Project
}
}
// Im print / legalnotes / Impressum
$legalNotes = $Project->getSitesIds(array(
'where' => array(
$legalNotes = $Project->getSitesIds([
'where' => [
'active' => -1,
'type' => 'quiqqer/sitetypes:types/legalnotes'
),
],
'limit' => 1
));
]);
if (empty($legalNotes)) {
try {
$legalNoteId = $First->createChild(array(
$legalNoteId = $First->createChild([
'name' => self::parseForUrl(
'quiqqer/quiqqer',
'projects.defaultstructure.legalnotes.name',
......@@ -117,7 +116,7 @@ class Project
'projects.defaultstructure.legalnotes.name',
$Project
)
));
]);
$Legal = new QUI\Projects\Site\Edit($Project, $legalNoteId);
$Legal->setAttribute('type', 'quiqqer/sitetypes:types/legalnotes');
......@@ -129,17 +128,17 @@ class Project
}
// AGB / generalTermsAndConditions
$generalTermsAndConditions = $Project->getSitesIds(array(
'where' => array(
$generalTermsAndConditions = $Project->getSitesIds([
'where' => [
'active' => -1,
'type' => 'quiqqer/sitetypes:types/generalTermsAndConditions'
),
],
'limit' => 1
));
]);
if (empty($generalTermsAndConditions)) {
try {
$generalTermsAndConditionsId = $First->createChild(array(
$generalTermsAndConditionsId = $First->createChild([
'name' => self::parseForUrl(
'quiqqer/quiqqer',
'projects.defaultstructure.generalTermsAndConditions.name',
......@@ -150,7 +149,7 @@ class Project
'projects.defaultstructure.generalTermsAndConditions.name',
$Project
)
));
]);
$GTC = new QUI\Projects\Site\Edit($Project, $generalTermsAndConditionsId);
$GTC->setAttribute('type', 'quiqqer/sitetypes:types/generalTermsAndConditions');
......@@ -161,19 +160,18 @@ class Project
}
}
// Datenschutzerklärung / privacypolicy
$privacyPolicy = $Project->getSitesIds(array(
'where' => array(
$privacyPolicy = $Project->getSitesIds([
'where' => [
'active' => -1,
'type' => 'quiqqer/sitetypes:types/privacypolicy'
),
],
'limit' => 1
));
]);
if (empty($privacyPolicy)) {
try {
$privacyPolicyId = $First->createChild(array(
$privacyPolicyId = $First->createChild([
'name' => self::parseForUrl(
'quiqqer/quiqqer',
'projects.defaultstructure.privacypolicy.name',
......@@ -184,7 +182,7 @@ class Project
'projects.defaultstructure.privacypolicy.name',
$Project
)
));
]);
$Legal = new QUI\Projects\Site\Edit($Project, $privacyPolicyId);
$Legal->setAttribute('type', 'quiqqer/sitetypes:types/privacypolicy');
......@@ -195,6 +193,34 @@ class Project
}
}
/**
* @param QUI\Projects\Project $Project
* @param $templateName
*
*
* @throws QUI\Exception
*/
public static function applyDemoDataToProject(QUI\Projects\Project $Project, $templateName)
{
$TemplatePackage = QUI::getPackageManager()->getInstalledPackage($templateName);
$Parser = new DemoDataParser();
$demoDataArray = [];
if (file_exists($TemplatePackage->getDir().'demodata.xml')) {
$demoDataArray = $Parser->parse($TemplatePackage->getDir().'demodata.xml');
}
if (empty($demoDataArray)) {
throw new QUI\Demodata\Exceptions\UnsupportedException([
'quiqqer/demodata',
'exception.template.unsupported'
]);
}
$DemoData = new QUI\Demodata\DemoData();
$DemoData->apply($Project, $demoDataArray);
}
/**
* parse a locale string that no url error exists
*
......@@ -222,7 +248,7 @@ class Project
*/
public static function validateProjectName($projectName)
{
$forbiddenSigns = array(
$forbiddenSigns = [
'-',
'.',
',',
......@@ -242,21 +268,21 @@ class Project
'=',
'\'',
'"'
);
];
if (preg_match("@[-.,:;#`!§$%&/?<>\=\'\" ]@", $projectName)) {
throw new QUI\Exception(
QUI::getLocale()->get(
'quiqqer/system',
'exception.project.not.allowed.signs',
array(
[
'signs' => implode(' ', $forbiddenSigns)
)
]
),
802
);
}
return true;
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<locales>
<file file="/lib/locale/de.xml"/>
<file file="/lib/locale/de.languages.xml"/>
<file file="/lib/locale/en.xml"/>
<file file="/lib/locale/en.languages.xml"/>
<file file="/lib/locale/pl.xml"/>
</locales>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment