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

fix: conflict solved -> composer error

parents bc584210 311415d2
......@@ -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
})
});
},
......
......@@ -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();
......
/**
* @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.*",
......@@ -91,4 +92,4 @@
"QUI\\Tests\\": "tests\/QUI\/"
}
}
}
}
\ No newline at end of file
......@@ -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;
}
}
......@@ -5072,6 +5072,9 @@
<locale name="template.project.no.template">
<de><![CDATA[Kein Template verwenden]]></de>
</locale>
<locale name="demodata.project.label.template">
<de><![CDATA[Demodaten installieren]]></de>
</locale>
<locale name="projects.project.site.no.permissions">
<de><![CDATA[Sie besitzen keine Rechte diese Seite anzuzeigen]]></de>
</locale>
......
......@@ -4913,6 +4913,9 @@
<locale name="template.project.no.template">
<en><![CDATA[Do not use a template]]></en>
</locale>
<locale name="demodata.project.label.template">
<en><![CDATA[Install demodata]]></en>
</locale>
<locale name="projects.project.site.no.permissions">
<en><![CDATA[You do not have permission to access this page.]]></en>
</locale>
......
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