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

fix: conflict solved -> composer error

parents bc584210 311415d2
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
* Create a new project * Create a new project
* *
* @param string $params - JSON Array * @param string $params - JSON Array
*
* @return string - Name of the project * @return string - Name of the project
*/ */
QUI::$Ajax->registerFunction( QUI::$Ajax->registerFunction(
...@@ -16,6 +17,25 @@ QUI::$Ajax->registerFunction( ...@@ -16,6 +17,25 @@ QUI::$Ajax->registerFunction(
$params['lang'] $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(); return $Project->getName();
}, },
['params'], ['params'],
......
...@@ -58,6 +58,16 @@ ...@@ -58,6 +58,16 @@
</select> </select>
</td> </td>
</tr> </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> </tbody>
</table> </table>
......
...@@ -3,11 +3,8 @@ ...@@ -3,11 +3,8 @@
* *
* @module DownloadManager * @module DownloadManager
* @author www.pcsg.de (Henning Leutz) * @author www.pcsg.de (Henning Leutz)
*
* @require classes/request/Downloads
*/ */
define('DownloadManager', ['classes/request/Downloads'], function (DownloadManager) {
define(['classes/request/Downloads'], function (DownloadManager) {
"use strict"; "use strict";
return new DownloadManager(); return new DownloadManager();
......
...@@ -3,9 +3,8 @@ ...@@ -3,9 +3,8 @@
* *
* @module UploadManager * @module UploadManager
* @author www.pcsg.de (Henning Leutz) * @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"; "use strict";
return new UploadManager(); return new UploadManager();
......
...@@ -155,9 +155,10 @@ define('classes/projects/Manager', [ ...@@ -155,9 +155,10 @@ define('classes/projects/Manager', [
* @param {String} project * @param {String} project
* @param {String} lang * @param {String} lang
* @param {String} template * @param {String} template
* @param demodata
* @param {Function} [onfinish] * @param {Function} [onfinish]
*/ */
createNewProject: function (project, lang, template, onfinish) { createNewProject: function (project, lang, template, demodata, onfinish) {
var self = this; var self = this;
this.$getList = null; this.$getList = null;
...@@ -173,7 +174,8 @@ define('classes/projects/Manager', [ ...@@ -173,7 +174,8 @@ define('classes/projects/Manager', [
params: JSON.encode({ params: JSON.encode({
project : project, project : project,
lang : lang, lang : lang,
template: template template: template,
demodata: demodata
}) })
}); });
}, },
......
...@@ -270,6 +270,7 @@ define('controls/projects/Manager', [ ...@@ -270,6 +270,7 @@ define('controls/projects/Manager', [
Form.elements.project.value, Form.elements.project.value,
Form.elements.lang.value, Form.elements.lang.value,
Form.elements.template.value, Form.elements.template.value,
Form.elements.demodata.value,
function (result) { function (result) {
self.Loader.hide(); self.Loader.hide();
......
/** /**
* @module controls/users/Login * @module controls/users/Login
* *
* @event onLoad * @event onLoad [self]
* @event onAuthBegin * @event onAuthBegin [self]
* @event onAuthNext * @event onAuthNext [self]
* @event onSuccess * @event onSuccess [self]
* @event onAuthNext * @event onUserLoginError [error, self]
* @event onUserLoginError [error, this] *
* @event onQuiqqerUserAuthLoginLoad [self]
* @event onQuiqqerUserAuthLoginUserLoginError [error, self]
* @event onQuiqqerUserAuthLoginAuthBegin [self]
* @event onQuiqqerUserAuthLoginSuccess [self]
* @event onQuiqqerUserAuthNext [self]
*/ */
define('controls/users/Login', [ define('controls/users/Login', [
...@@ -91,6 +96,7 @@ define('controls/users/Login', [ ...@@ -91,6 +96,7 @@ define('controls/users/Login', [
QUIAjax.get('ajax_users_loginControl', function (result) { QUIAjax.get('ajax_users_loginControl', function (result) {
self.$buildAuthenticator(result).then(function () { self.$buildAuthenticator(result).then(function () {
self.fireEvent('load', [self]); self.fireEvent('load', [self]);
QUI.fireEvent('quiqqerUserAuthLoginLoad', [self]);
}); });
}, { }, {
isAdminLogin : typeof QUIQQER_IS_ADMIN_LOGIN !== 'undefined' ? 1 : 0, isAdminLogin : typeof QUIQQER_IS_ADMIN_LOGIN !== 'undefined' ? 1 : 0,
...@@ -111,6 +117,7 @@ define('controls/users/Login', [ ...@@ -111,6 +117,7 @@ define('controls/users/Login', [
this.$refreshForm(); this.$refreshForm();
this.fireEvent('load', [this]); this.fireEvent('load', [this]);
QUI.fireEvent('quiqqerUserAuthLoginLoad', [this]);
}, },
/** /**
...@@ -142,6 +149,7 @@ define('controls/users/Login', [ ...@@ -142,6 +149,7 @@ define('controls/users/Login', [
this.auth(Target).catch(function (err) { this.auth(Target).catch(function (err) {
self.fireEvent('userLoginError', [err, self]); self.fireEvent('userLoginError', [err, self]);
QUI.fireEvent('quiqqerUserAuthLoginUserLoginError', [err, self]);
}); });
}.bind(this) }.bind(this)
} }
...@@ -225,6 +233,7 @@ define('controls/users/Login', [ ...@@ -225,6 +233,7 @@ define('controls/users/Login', [
} }
this.fireEvent('authBegin', [this]); this.fireEvent('authBegin', [this]);
QUI.fireEvent('quiqqerUserAuthLoginAuthBegin', [this]);
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
QUIAjax.post('ajax_users_login', function (result) { QUIAjax.post('ajax_users_login', function (result) {
...@@ -233,6 +242,7 @@ define('controls/users/Login', [ ...@@ -233,6 +242,7 @@ define('controls/users/Login', [
window.QUIQQER_USER = result.user; window.QUIQQER_USER = result.user;
self.fireEvent('success', [self]); self.fireEvent('success', [self]);
QUI.fireEvent('quiqqerUserAuthLoginSuccess', [self]);
resolve(self); resolve(self);
if (typeof self.getAttribute('onSuccess') === 'function') { if (typeof self.getAttribute('onSuccess') === 'function') {
...@@ -277,7 +287,8 @@ define('controls/users/Login', [ ...@@ -277,7 +287,8 @@ define('controls/users/Login', [
), ),
onError : function (e) { onError : function (e) {
self.Loader.hide(); self.Loader.hide();
self.fireEvent('authNext', [this]); self.fireEvent('authNext', [self]);
QUI.fireEvent('quiqqerUserAuthNext', [self]);
reject(e); reject(e);
} }
......
...@@ -4,10 +4,7 @@ ...@@ -4,10 +4,7 @@
* @author www.pcsg.de (Henning Leutz) * @author www.pcsg.de (Henning Leutz)
* @module controls/users/LogoutWindow * @module controls/users/LogoutWindow
* *
* @require qui/QUI * @event onQuiqqerUserAuthLogout
* @require qui/controls/windows/Confirm
* @require controls/users/Login
* @require Locale
*/ */
define('controls/users/LogoutWindow', [ define('controls/users/LogoutWindow', [
...@@ -64,6 +61,8 @@ define('controls/users/LogoutWindow', [ ...@@ -64,6 +61,8 @@ define('controls/users/LogoutWindow', [
this.Loader.show(); this.Loader.show();
Ajax.post('ajax_users_logout', function () { Ajax.post('ajax_users_logout', function () {
QUI.fireEvent('quiqqerUserAuthLogout');
if (window.location.hash !== '') { if (window.location.hash !== '') {
window.location.reload(); window.location.reload();
return; return;
......
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
"quiqqer\/fontawesome": "*", "quiqqer\/fontawesome": "*",
"quiqqer\/backendsearch": "1.*|dev-master|dev-dev", "quiqqer\/backendsearch": "1.*|dev-master|dev-dev",
"quiqqer\/requirements": "2.*", "quiqqer\/requirements": "2.*",
"quiqqer\/demodata": "^1.0|dev-master|dev-dev",
"npm-asset\/intl": "1.*", "npm-asset\/intl": "1.*",
"npm-asset\/nouislider": "*", "npm-asset\/nouislider": "*",
"npm-asset\/mustache": "2.*", "npm-asset\/mustache": "2.*",
...@@ -91,4 +92,4 @@ ...@@ -91,4 +92,4 @@
"QUI\\Tests\\": "tests\/QUI\/" "QUI\\Tests\\": "tests\/QUI\/"
} }
} }
} }
\ No newline at end of file
...@@ -71,19 +71,15 @@ HEAD; ...@@ -71,19 +71,15 @@ HEAD;
$geoIPSettings = <<<GEO $geoIPSettings = <<<GEO
### SET GEOIP Variables ### ### SET GEOIP Variables ###
#fastcgi_param GEOIP_COUNTRY_CODE \$geoip_country_code; #fastcgi_param GEOIP_COUNTRY_CODE \$geoip2_data_country_code;
#fastcgi_param GEOIP_COUNTRY_CODE3 \$geoip_country_code3; #fastcgi_param GEOIP_COUNTRY_NAME \$geoip2_data_country_name;
#fastcgi_param GEOIP_COUNTRY_NAME \$geoip_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_COUNTRY_CODE \$geoip_city_country_code; #fastcgi_param GEOIP_CITY \$geoip2_data_city_name;
#fastcgi_param GEOIP_CITY_COUNTRY_CODE3 \$geoip_city_country_code3; #fastcgi_param GEOIP_POSTAL_CODE \$geoip2_data_postal_code;
#fastcgi_param GEOIP_CITY_COUNTRY_NAME \$geoip_city_country_name; #fastcgi_param GEOIP_CITY_CONTINENT_CODE \$geoip2_data_continent_code;
#fastcgi_param GEOIP_REGION \$geoip_region; #fastcgi_param GEOIP_LATITUDE \$geoip2_data_location_longitude;
#fastcgi_param GEOIP_CITY \$geoip_city; #fastcgi_param GEOIP_LONGITUDE \$geoip2_data_postal_code;
#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;
GEO; GEO;
file_put_contents($this->subConfDir."php.include", $geoIPSettings, FILE_APPEND); file_put_contents($this->subConfDir."php.include", $geoIPSettings, FILE_APPEND);
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
namespace QUI\Utils; namespace QUI\Utils;
use QUI; use QUI;
use QUI\Demodata\Parser\DemoDataParser;
/** /**
* Class Project * Class Project
...@@ -52,7 +53,6 @@ class Project ...@@ -52,7 +53,6 @@ class Project
$First->save(); $First->save();
} }
// Search // Search
$searchType = 'quiqqer/sitetypes:types/search'; $searchType = 'quiqqer/sitetypes:types/search';
...@@ -62,17 +62,17 @@ class Project ...@@ -62,17 +62,17 @@ class Project
} catch (QUI\Exception $Exception) { } catch (QUI\Exception $Exception) {
} }
$search = $Project->getSitesIds(array( $search = $Project->getSitesIds([
'where' => array( 'where' => [
'active' => -1, 'active' => -1,
'type' => $searchType 'type' => $searchType
), ],
'limit' => 1 'limit' => 1
)); ]);
if (empty($search)) { if (empty($search)) {
try { try {
$searchId = $First->createChild(array( $searchId = $First->createChild([
'name' => self::parseForUrl( 'name' => self::parseForUrl(
'quiqqer/quiqqer', 'quiqqer/quiqqer',
'projects.defaultstructure.search.name', 'projects.defaultstructure.search.name',
...@@ -83,7 +83,7 @@ class Project ...@@ -83,7 +83,7 @@ class Project
'projects.defaultstructure.search.title', 'projects.defaultstructure.search.title',
$Project $Project
) )
)); ]);
$Search = new QUI\Projects\Site\Edit($Project, $searchId); $Search = new QUI\Projects\Site\Edit($Project, $searchId);
$Search->setAttribute('type', $searchType); $Search->setAttribute('type', $searchType);
...@@ -94,19 +94,18 @@ class Project ...@@ -94,19 +94,18 @@ class Project
} }
} }
// Im print / legalnotes / Impressum // Im print / legalnotes / Impressum
$legalNotes = $Project->getSitesIds(array( $legalNotes = $Project->getSitesIds([
'where' => array( 'where' => [
'active' => -1, 'active' => -1,
'type' => 'quiqqer/sitetypes:types/legalnotes' 'type' => 'quiqqer/sitetypes:types/legalnotes'
), ],
'limit' => 1 'limit' => 1
)); ]);
if (empty($legalNotes)) { if (empty($legalNotes)) {
try { try {
$legalNoteId = $First->createChild(array( $legalNoteId = $First->createChild([
'name' => self::parseForUrl( 'name' => self::parseForUrl(
'quiqqer/quiqqer', 'quiqqer/quiqqer',
'projects.defaultstructure.legalnotes.name', 'projects.defaultstructure.legalnotes.name',
...@@ -117,7 +116,7 @@ class Project ...@@ -117,7 +116,7 @@ class Project
'projects.defaultstructure.legalnotes.name', 'projects.defaultstructure.legalnotes.name',
$Project $Project
) )
)); ]);
$Legal = new QUI\Projects\Site\Edit($Project, $legalNoteId); $Legal = new QUI\Projects\Site\Edit($Project, $legalNoteId);
$Legal->setAttribute('type', 'quiqqer/sitetypes:types/legalnotes'); $Legal->setAttribute('type', 'quiqqer/sitetypes:types/legalnotes');
...@@ -129,17 +128,17 @@ class Project ...@@ -129,17 +128,17 @@ class Project
} }
// AGB / generalTermsAndConditions // AGB / generalTermsAndConditions
$generalTermsAndConditions = $Project->getSitesIds(array( $generalTermsAndConditions = $Project->getSitesIds([
'where' => array( 'where' => [
'active' => -1, 'active' => -1,
'type' => 'quiqqer/sitetypes:types/generalTermsAndConditions' 'type' => 'quiqqer/sitetypes:types/generalTermsAndConditions'
), ],
'limit' => 1 'limit' => 1
)); ]);
if (empty($generalTermsAndConditions)) { if (empty($generalTermsAndConditions)) {
try { try {
$generalTermsAndConditionsId = $First->createChild(array( $generalTermsAndConditionsId = $First->createChild([
'name' => self::parseForUrl( 'name' => self::parseForUrl(
'quiqqer/quiqqer', 'quiqqer/quiqqer',
'projects.defaultstructure.generalTermsAndConditions.name', 'projects.defaultstructure.generalTermsAndConditions.name',
...@@ -150,7 +149,7 @@ class Project ...@@ -150,7 +149,7 @@ class Project
'projects.defaultstructure.generalTermsAndConditions.name', 'projects.defaultstructure.generalTermsAndConditions.name',
$Project $Project
) )
)); ]);
$GTC = new QUI\Projects\Site\Edit($Project, $generalTermsAndConditionsId); $GTC = new QUI\Projects\Site\Edit($Project, $generalTermsAndConditionsId);
$GTC->setAttribute('type', 'quiqqer/sitetypes:types/generalTermsAndConditions'); $GTC->setAttribute('type', 'quiqqer/sitetypes:types/generalTermsAndConditions');
...@@ -161,19 +160,18 @@ class Project ...@@ -161,19 +160,18 @@ class Project
} }
} }
// Datenschutzerklärung / privacypolicy // Datenschutzerklärung / privacypolicy
$privacyPolicy = $Project->getSitesIds(array( $privacyPolicy = $Project->getSitesIds([
'where' => array( 'where' => [
'active' => -1, 'active' => -1,
'type' => 'quiqqer/sitetypes:types/privacypolicy' 'type' => 'quiqqer/sitetypes:types/privacypolicy'
), ],
'limit' => 1 'limit' => 1
)); ]);
if (empty($privacyPolicy)) { if (empty($privacyPolicy)) {
try { try {
$privacyPolicyId = $First->createChild(array( $privacyPolicyId = $First->createChild([
'name' => self::parseForUrl( 'name' => self::parseForUrl(
'quiqqer/quiqqer', 'quiqqer/quiqqer',
'projects.defaultstructure.privacypolicy.name', 'projects.defaultstructure.privacypolicy.name',
...@@ -184,7 +182,7 @@ class Project ...@@ -184,7 +182,7 @@ class Project
'projects.defaultstructure.privacypolicy.name', 'projects.defaultstructure.privacypolicy.name',
$Project $Project
) )
)); ]);
$Legal = new QUI\Projects\Site\Edit($Project, $privacyPolicyId); $Legal = new QUI\Projects\Site\Edit($Project, $privacyPolicyId);
$Legal->setAttribute('type', 'quiqqer/sitetypes:types/privacypolicy'); $Legal->setAttribute('type', 'quiqqer/sitetypes:types/privacypolicy');
...@@ -195,6 +193,34 @@ class Project ...@@ -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 * parse a locale string that no url error exists
* *
...@@ -222,7 +248,7 @@ class Project ...@@ -222,7 +248,7 @@ class Project
*/ */
public static function validateProjectName($projectName) public static function validateProjectName($projectName)
{ {
$forbiddenSigns = array( $forbiddenSigns = [
'-', '-',
'.', '.',
',', ',',
...@@ -242,21 +268,21 @@ class Project ...@@ -242,21 +268,21 @@ class Project
'=', '=',
'\'', '\'',
'"' '"'
); ];
if (preg_match("@[-.,:;#`!§$%&/?<>\=\'\" ]@", $projectName)) { if (preg_match("@[-.,:;#`!§$%&/?<>\=\'\" ]@", $projectName)) {
throw new QUI\Exception( throw new QUI\Exception(
QUI::getLocale()->get( QUI::getLocale()->get(
'quiqqer/system', 'quiqqer/system',
'exception.project.not.allowed.signs', 'exception.project.not.allowed.signs',
array( [
'signs' => implode(' ', $forbiddenSigns) 'signs' => implode(' ', $forbiddenSigns)
) ]
), ),
802 802
); );
} }
return true; return true;
} }
} }
...@@ -5072,6 +5072,9 @@ ...@@ -5072,6 +5072,9 @@
<locale name="template.project.no.template"> <locale name="template.project.no.template">
<de><![CDATA[Kein Template verwenden]]></de> <de><![CDATA[Kein Template verwenden]]></de>
</locale> </locale>
<locale name="demodata.project.label.template">
<de><![CDATA[Demodaten installieren]]></de>
</locale>
<locale name="projects.project.site.no.permissions"> <locale name="projects.project.site.no.permissions">
<de><![CDATA[Sie besitzen keine Rechte diese Seite anzuzeigen]]></de> <de><![CDATA[Sie besitzen keine Rechte diese Seite anzuzeigen]]></de>
</locale> </locale>
......
...@@ -4913,6 +4913,9 @@ ...@@ -4913,6 +4913,9 @@
<locale name="template.project.no.template"> <locale name="template.project.no.template">
<en><![CDATA[Do not use a template]]></en> <en><![CDATA[Do not use a template]]></en>
</locale> </locale>
<locale name="demodata.project.label.template">
<en><![CDATA[Install demodata]]></en>
</locale>
<locale name="projects.project.site.no.permissions"> <locale name="projects.project.site.no.permissions">
<en><![CDATA[You do not have permission to access this page.]]></en> <en><![CDATA[You do not have permission to access this page.]]></en>
</locale> </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