Unverified Commit 7e80c64a authored by Christian Giupponi's avatar Christian Giupponi Committed by GitHub

Merge pull request #3 from AsgardCms/3.0

merge latest asgard update
parents 8445397d c63fabab
...@@ -8,5 +8,5 @@ class AsgardCms ...@@ -8,5 +8,5 @@ class AsgardCms
* The AsgardCms version. * The AsgardCms version.
* @var string * @var string
*/ */
const VERSION = '3.5.3'; const VERSION = '3.6.0';
} }
...@@ -52,31 +52,15 @@ abstract class RoutingServiceProvider extends ServiceProvider ...@@ -52,31 +52,15 @@ abstract class RoutingServiceProvider extends ServiceProvider
$this->loadApiRoutes($router); $this->loadApiRoutes($router);
}); });
$prefixes = $this->getPrefixes();
foreach ($prefixes as $prefix) {
$router->group([ $router->group([
'namespace' => $this->namespace, 'namespace' => $this->namespace,
'prefix' => $prefix, 'prefix' => LaravelLocalization::setLocale(),
'middleware' => ['localizationRedirect', 'web'], 'middleware' => ['localizationRedirect', 'web'],
], function (Router $router) { ], function (Router $router) {
$this->loadBackendRoutes($router); $this->loadBackendRoutes($router);
$this->loadFrontendRoutes($router); $this->loadFrontendRoutes($router);
}); });
} }
}
/**
* Get locale prefixes
* @return array
*/
private function getPrefixes()
{
if (app('asgard.isInstalled')) {
return array_merge(json_decode(setting('core::locales')), ['']);
}
return [LaravelLocalization::setLocale()];
}
/** /**
* @param Router $router * @param Router $router
......
url: https://github.com/AsgardCms/Platform url: https://github.com/AsgardCms/Platform
versions: versions:
"@unreleased": "@unreleased":
changed:
- Fixed routing issues with localization introduced in 3.6.0
"3.6.0":
added: added:
- New Hungarian translations - New Hungarian translations
- new <code>i18nFile</code> & <code>normalFile</code> macros
changed: changed:
- Updating Dutch translations - Updating Dutch translations
- Fix Carbon locale - Fix Carbon locale
......
url: https://github.com/AsgardCms/Platform url: https://github.com/AsgardCms/Platform
versions: versions:
"3.6.0":
added:
- New MediaMuliple component for vuejs projects
"3.5.1": "3.5.1":
changed: changed:
- Modify media controller to use Imagy non-statically - Modify media controller to use Imagy non-statically
......
url: https://github.com/AsgardCms/Platform url: https://github.com/AsgardCms/Platform
versions: versions:
"@unreleased": "3.6.0":
added:
- Add canonical and metadata for pages
changed: changed:
- Don't show draft pages - Don't show draft pages
- Throw a 404 if page status is disabled - Throw a 404 if page status is disabled
- Fixed a bug that checked the last radio even if wasn't the right one
"3.5.2": "3.5.2":
changed: changed:
- Adding support for UTF-8 slug for non ASCII characters (Chinese etc.) - Adding support for UTF-8 slug for non ASCII characters (Chinese etc.)
......
url: https://github.com/AsgardCms/Platform url: https://github.com/AsgardCms/Platform
versions: versions:
"@unreleased": "3.6.0":
added: added:
- New <code>@hasSetting()</code> and <code>@endHasSetting</code> directives - New <code>@hasSetting()</code> and <code>@endHasSetting</code> directives
"3.5.3": "3.5.3":
......
url: https://github.com/AsgardCms/Platform url: https://github.com/AsgardCms/Platform
versions: versions:
"@unreleased": "3.6.0":
changed: changed:
- Adding a test the user token is correctly generated - Adding a test the user token is correctly generated
- Fix creation of an activated user - Fix creation of an activated user
......
...@@ -21,7 +21,7 @@ use Modules\Workshop\Scaffold\Module\Generators\ValueObjectGenerator; ...@@ -21,7 +21,7 @@ use Modules\Workshop\Scaffold\Module\Generators\ValueObjectGenerator;
use Modules\Workshop\Scaffold\Module\ModuleScaffold; use Modules\Workshop\Scaffold\Module\ModuleScaffold;
use Modules\Workshop\Scaffold\Theme\ThemeGeneratorFactory; use Modules\Workshop\Scaffold\Theme\ThemeGeneratorFactory;
use Modules\Workshop\Scaffold\Theme\ThemeScaffold; use Modules\Workshop\Scaffold\Theme\ThemeScaffold;
use Nwidart\Modules\Repository; use Nwidart\Modules\Contracts\RepositoryInterface;
class WorkshopServiceProvider extends ServiceProvider class WorkshopServiceProvider extends ServiceProvider
{ {
...@@ -55,7 +55,7 @@ class WorkshopServiceProvider extends ServiceProvider ...@@ -55,7 +55,7 @@ class WorkshopServiceProvider extends ServiceProvider
}); });
app('router')->bind('module', function ($module) { app('router')->bind('module', function ($module) {
return app(Repository::class)->find($module); return app(RepositoryInterface::class)->find($module);
}); });
app('router')->bind('theme', function ($theme) { app('router')->bind('theme', function ($theme) {
return app(ThemeManager::class)->find($theme); return app(ThemeManager::class)->find($theme);
......
url: https://github.com/AsgardCms/Platform url: https://github.com/AsgardCms/Platform
versions: versions:
"@unreleased":
changed:
- Fixed issue with incorrect binding to the laravel-modules Repository class
"3.5.1": "3.5.1":
changed: changed:
- Fixing issue with ThemeManager caused when a theme name has the same name as project name - Fixing issue with ThemeManager caused when a theme name has the same name as project name
......
<template>
<div>
<label class="el-form-item__label">{{ getFieldLabel() }}</label>
<div class="jsThumbnailImageWrapper jsSingleThumbnailWrapper" v-if="hasSelectedMedia" >
<figure v-for="media in this.selectedMedia" :key="media.id">
<img :src="media.small_thumb" alt="" v-if="media.is_image"/>
<i :class="`fa ${media.fa_icon}`" style="font-size: 60px;" v-if="! media.is_image"></i>
<span v-if="! media.is_image" style="display:block;">{{ media.filename }}</span>
<span class="el-icon-error remove-media" @click="unSelectMedia(media.id)"></span>
</figure>
<div class="clearfix"></div>
</div>
<div>
<el-button type="button" @click="dialogVisible = true">{{ trans('media.Browse') }}</el-button>
</div>
<el-dialog
:visible.sync="dialogVisible"
fullscreen
:before-close="handleClose">
<media-list single-modal :event-name="this.eventName"></media-list>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">{{ trans('core.button.cancel') }}</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import axios from 'axios';
import UploadZone from '../../../../Media/Assets/js/components/UploadZone.vue';
import MediaList from '../../../../Media/Assets/js/components/MediaList.vue';
import StringHelpers from '../../../../Core/Assets/js/mixins/StringHelpers.vue';
export default {
mixins: [StringHelpers],
props: {
zone: { type: String, required: true },
entity: { type: String, required: true },
entityId: { default: null },
label: { type: String },
},
components: {
'upload-zone': UploadZone,
'media-list': MediaList,
},
watch: {
entityId() {
if (this.entityId) {
this.fetchMedia();
}
},
},
data() {
return {
dialogVisible: false,
selectedMedia: [],
eventName: '',
};
},
computed: {
hasSelectedMedia() {
return this.selectedMedia !== undefined && !_.isEmpty(this.selectedMedia);
},
},
methods: {
handleClose(done) {
done();
},
unSelectMedia(id) {
this.selectedMedia = _.reject(this.selectedMedia, media => media.id === id);
this.$emit('fileUnselected', { id, zone: this.zone });
},
fetchMedia() {
axios.get(route('api.media.get-by-zone-and-entity', {
zone: this.zone,
entity: this.entity,
entity_id: this.entityId,
}))
.then((response) => {
this.selectedMedia = response.data.data;
_.forEach(this.selectedMedia, (file) => {
this.$emit('multipleFileSelected', { id: file.id, zone: this.zone });
});
});
},
getFieldLabel() {
return this.label || this.ucwords(this.zone.replace('_', ' '));
},
makeId() {
let text = '';
const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
for (let i = 0; i < 5; i++) { text += possible.charAt(Math.floor(Math.random() * possible.length)); }
return text;
},
},
mounted() {
if (this.entityId) {
this.fetchMedia();
}
this.eventName = `fileWasSelected${this.makeId()}${Math.floor(Math.random() * 999999)}`;
this.$events.listen(this.eventName, (mediaData) => {
if (_.find(this.selectedMedia, mediaData) === undefined) {
if (!this.selectedMedia) this.selectedMedia = [];
this.selectedMedia.push(mediaData);
this.$emit('multipleFileSelected', _.merge(mediaData, { zone: this.zone }));
}
});
},
};
</script>
<style>
.remove-media{
position: absolute;
top: 5px;
left: 5px;
color: #FA5555;
}
</style>
\ No newline at end of file
export default {
methods: {
selectMultipleFile(event, model) {
if (!this[model].medias_multi) {
this[model].medias_multi = {};
}
if (!this[model].medias_multi[event.zone]) {
this[model].medias_multi[event.zone] = { files: [] };
}
this[model].medias_multi[event.zone].files.push(event.id);
},
unselectFile(event, model) {
if (!this[model].medias_multi) {
this[model].medias_multi = {};
}
if (!this[model].medias_multi[event.zone]) {
this[model].medias_multi[event.zone] = { files: [] };
if (this.$refs['multiple-media'] !== undefined && this.$refs['multiple-media'].selectedMedia !== undefined && !_.isEmpty(this.$refs['multiple-media'].selectedMedia)) {
_.forEach(this.$refs['multiple-media'].selectedMedia, (file, key) => {
this[model].medias_multi[event.zone].files.push(file.id);
});
}
}
this[model].medias_multi[event.zone].files = _.reject(this[model].medias_multi[event.zone].files, media => media === event.id);
},
},
};
\ 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