creating folders from ui
This commit is contained in:
parent
6718e5c9f9
commit
41177bd4e6
|
@ -1,32 +0,0 @@
|
||||||
uuid: 4183b53b-30db-4b2d-b087-cb903f23fe27
|
|
||||||
langcode: en
|
|
||||||
status: true
|
|
||||||
dependencies:
|
|
||||||
module:
|
|
||||||
- node
|
|
||||||
id: dossier
|
|
||||||
label: Dossier
|
|
||||||
bundles:
|
|
||||||
- article
|
|
||||||
- materiau
|
|
||||||
- thematique
|
|
||||||
entity_type: node
|
|
||||||
global: false
|
|
||||||
weight: 0
|
|
||||||
flag_short: 'Flag this item'
|
|
||||||
flag_long: ''
|
|
||||||
flag_message: ''
|
|
||||||
unflag_short: 'Unflag this item'
|
|
||||||
unflag_long: ''
|
|
||||||
unflag_message: ''
|
|
||||||
unflag_denied_text: ''
|
|
||||||
flag_type: 'entity:node'
|
|
||||||
link_type: reload
|
|
||||||
flagTypeConfig:
|
|
||||||
show_in_links: { }
|
|
||||||
show_as_field: true
|
|
||||||
show_on_form: false
|
|
||||||
show_contextual_link: true
|
|
||||||
extra_permissions:
|
|
||||||
owner: owner
|
|
||||||
linkTypeConfig: { }
|
|
|
@ -1,32 +0,0 @@
|
||||||
uuid: cc972bc9-a9d6-4715-bde0-b686a22069d2
|
|
||||||
langcode: en
|
|
||||||
status: true
|
|
||||||
dependencies:
|
|
||||||
module:
|
|
||||||
- flag_lists
|
|
||||||
- node
|
|
||||||
_core:
|
|
||||||
default_config_hash: gv5HCXt_zANnxz5g4ygaALNMnN5yQzI4jy3A7c8phFc
|
|
||||||
id: flag_list_template_1
|
|
||||||
label: 'Flag list template 1'
|
|
||||||
bundles: { }
|
|
||||||
entity_type: node
|
|
||||||
global: false
|
|
||||||
weight: 0
|
|
||||||
flag_short: 'Add this item to the [flagging_collection:name] list'
|
|
||||||
flag_long: 'Add this to your flag list'
|
|
||||||
flag_message: 'Added to the flag list'
|
|
||||||
unflag_short: 'Remove this item from the [flagging_collection:name] list'
|
|
||||||
unflag_long: 'Remove this item from your flag list'
|
|
||||||
unflag_message: 'Removed from the flag list'
|
|
||||||
unflag_denied_text: ''
|
|
||||||
flag_type: 'entity:node'
|
|
||||||
link_type: ajax_link
|
|
||||||
flagTypeConfig:
|
|
||||||
show_in_links: { }
|
|
||||||
show_as_field: true
|
|
||||||
show_on_form: false
|
|
||||||
show_contextual_link: false
|
|
||||||
extra_permissions:
|
|
||||||
owner: '0'
|
|
||||||
linkTypeConfig: { }
|
|
|
@ -1,33 +0,0 @@
|
||||||
uuid: null
|
|
||||||
langcode: en
|
|
||||||
status: true
|
|
||||||
dependencies:
|
|
||||||
module:
|
|
||||||
- flag_lists
|
|
||||||
- node
|
|
||||||
id: test_dossier
|
|
||||||
label: 'test dossier'
|
|
||||||
bundles:
|
|
||||||
- article
|
|
||||||
- materiau
|
|
||||||
- thematique
|
|
||||||
entity_type: node
|
|
||||||
global: false
|
|
||||||
weight: 0
|
|
||||||
flag_short: 'Flag this item'
|
|
||||||
flag_long: ''
|
|
||||||
flag_message: ''
|
|
||||||
unflag_short: 'Unflag this item'
|
|
||||||
unflag_long: ''
|
|
||||||
unflag_message: ''
|
|
||||||
unflag_denied_text: ''
|
|
||||||
flag_type: 'entity:node'
|
|
||||||
link_type: ajax_link
|
|
||||||
flagTypeConfig:
|
|
||||||
show_in_links: { }
|
|
||||||
show_as_field: true
|
|
||||||
show_on_form: false
|
|
||||||
show_contextual_link: false
|
|
||||||
extra_permissions:
|
|
||||||
owner: owner
|
|
||||||
linkTypeConfig: { }
|
|
|
@ -1,9 +0,0 @@
|
||||||
uuid: null
|
|
||||||
langcode: en
|
|
||||||
status: true
|
|
||||||
dependencies: { }
|
|
||||||
id: dossier
|
|
||||||
label: Dossier
|
|
||||||
base_flag: dossier
|
|
||||||
owner: root
|
|
||||||
weight: null
|
|
|
@ -1,11 +0,0 @@
|
||||||
uuid: e0111fa4-31c3-483a-918f-aca9c752190f
|
|
||||||
langcode: en
|
|
||||||
status: true
|
|
||||||
dependencies: { }
|
|
||||||
_core:
|
|
||||||
default_config_hash: is37xp2En_K1r0KAxyELb0cyrB6aQH5Ygr7o6tICk24
|
|
||||||
id: flag_list_template_1
|
|
||||||
label: 'Flag list template 1'
|
|
||||||
base_flag: flag_list_template_1
|
|
||||||
owner: 'Drupal Master'
|
|
||||||
weight: null
|
|
|
@ -1,8 +0,0 @@
|
||||||
uuid: 93164e3c-1d21-4129-bafc-e8956664f1db
|
|
||||||
langcode: en
|
|
||||||
status: true
|
|
||||||
dependencies: { }
|
|
||||||
_core:
|
|
||||||
default_config_hash: FgMUj7Lcs3yxNwSGpVwKZ6N00JNmxn3FndQcd-230hM
|
|
||||||
id: flagging_collection_type_1
|
|
||||||
label: 'Flagging collection type 1'
|
|
|
@ -1,15 +0,0 @@
|
||||||
uuid: 19f6415c-55ae-4d43-9804-3b6c9725eb29
|
|
||||||
langcode: en
|
|
||||||
status: true
|
|
||||||
dependencies:
|
|
||||||
config:
|
|
||||||
- flag.flag.dossier
|
|
||||||
module:
|
|
||||||
- flag
|
|
||||||
id: flag_action.dossier_flag
|
|
||||||
label: 'Flag this item'
|
|
||||||
type: node
|
|
||||||
plugin: 'flag_action:dossier_flag'
|
|
||||||
configuration:
|
|
||||||
flag_id: dossier
|
|
||||||
flag_action: flag
|
|
|
@ -1,15 +0,0 @@
|
||||||
uuid: ee3693e6-2a01-4850-a464-099930242d42
|
|
||||||
langcode: en
|
|
||||||
status: true
|
|
||||||
dependencies:
|
|
||||||
config:
|
|
||||||
- flag.flag.dossier
|
|
||||||
module:
|
|
||||||
- flag
|
|
||||||
id: flag_action.dossier_unflag
|
|
||||||
label: 'Unflag this item'
|
|
||||||
type: node
|
|
||||||
plugin: 'flag_action:dossier_unflag'
|
|
||||||
configuration:
|
|
||||||
flag_id: dossier
|
|
||||||
flag_action: unflag
|
|
|
@ -1,17 +0,0 @@
|
||||||
uuid: b883b2b8-2955-4df1-987b-10a5e1488fd2
|
|
||||||
langcode: en
|
|
||||||
status: true
|
|
||||||
dependencies:
|
|
||||||
config:
|
|
||||||
- flag.flag.flag_list_template_1
|
|
||||||
module:
|
|
||||||
- flag
|
|
||||||
_core:
|
|
||||||
default_config_hash: LkE1QB2Y0oqjrb33mVsdE0cSy6E9wujJklHGqH91GvE
|
|
||||||
id: flag_action.flag_list_template_1_flag
|
|
||||||
label: 'Add this item to a list'
|
|
||||||
type: node
|
|
||||||
plugin: 'flag_action:flag_list_template_1_flag'
|
|
||||||
configuration:
|
|
||||||
flag_id: flag_list_template_1
|
|
||||||
flag_action: flag
|
|
|
@ -1,17 +0,0 @@
|
||||||
uuid: 657ee4d7-61e7-4466-b6d5-37270056d4ef
|
|
||||||
langcode: en
|
|
||||||
status: true
|
|
||||||
dependencies:
|
|
||||||
config:
|
|
||||||
- flag.flag.flag_list_template_1
|
|
||||||
module:
|
|
||||||
- flag
|
|
||||||
_core:
|
|
||||||
default_config_hash: dkSOtOrwdYQJVIAi2LOYl8XRZCqSIIIb0Hb9J-2NNug
|
|
||||||
id: flag_action.flag_list_template_1_unflag
|
|
||||||
label: 'Remove this item from the list'
|
|
||||||
type: node
|
|
||||||
plugin: 'flag_action:flag_list_template_1_unflag'
|
|
||||||
configuration:
|
|
||||||
flag_id: flag_list_template_1
|
|
||||||
flag_action: unflag
|
|
|
@ -1,15 +0,0 @@
|
||||||
uuid: dbe3c645-f4b1-416c-b9b2-43bf919eb593
|
|
||||||
langcode: en
|
|
||||||
status: true
|
|
||||||
dependencies:
|
|
||||||
config:
|
|
||||||
- flag.flag.test_dossier
|
|
||||||
module:
|
|
||||||
- flag
|
|
||||||
id: flag_action.test_dossier_flag
|
|
||||||
label: 'Flag this item'
|
|
||||||
type: node
|
|
||||||
plugin: 'flag_action:test_dossier_flag'
|
|
||||||
configuration:
|
|
||||||
flag_id: test_dossier
|
|
||||||
flag_action: flag
|
|
|
@ -1,15 +0,0 @@
|
||||||
uuid: c4aa7c16-1473-471b-81b0-3a862238bda7
|
|
||||||
langcode: en
|
|
||||||
status: true
|
|
||||||
dependencies:
|
|
||||||
config:
|
|
||||||
- flag.flag.test_dossier
|
|
||||||
module:
|
|
||||||
- flag
|
|
||||||
id: flag_action.test_dossier_unflag
|
|
||||||
label: 'Unflag this item'
|
|
||||||
type: node
|
|
||||||
plugin: 'flag_action:test_dossier_unflag'
|
|
||||||
configuration:
|
|
||||||
flag_id: test_dossier
|
|
||||||
flag_action: unflag
|
|
|
@ -5,3 +5,11 @@ materio_flag.user_flagging_collections:
|
||||||
_title: 'User Flagging Colleciton'
|
_title: 'User Flagging Colleciton'
|
||||||
requirements:
|
requirements:
|
||||||
_permission: 'access content'
|
_permission: 'access content'
|
||||||
|
|
||||||
|
materio_flag.create_user_flagging_collection:
|
||||||
|
path: 'materio_flag/create_user_flagging_collection'
|
||||||
|
defaults:
|
||||||
|
_controller: '\Drupal\materio_flag\Controller\MaterioFlagController::createUserFlaggingCollection'
|
||||||
|
_title: 'Create User Flagging Collection'
|
||||||
|
requirements:
|
||||||
|
_permission: 'access content'
|
||||||
|
|
|
@ -4,66 +4,27 @@ namespace Drupal\materio_flag\Controller;
|
||||||
|
|
||||||
use Drupal\Core\Controller\ControllerBase;
|
use Drupal\Core\Controller\ControllerBase;
|
||||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||||
// use Drupal\Core\Entity\EntityManagerInterface;
|
use Drupal\Core\Session\AccountProxy;
|
||||||
// use Drupal\language\ConfigurableLanguageManagerInterface;
|
use Drupal\Core\Session\AccountProxyInterface;
|
||||||
// use Drupal\Core\Render\RendererInterface;
|
|
||||||
// use Drupal\Core\Entity\EntityTypeManagerInterface;
|
|
||||||
// use Drupal\Core\Cache\CacheableJsonResponse;
|
|
||||||
// use Drupal\Core\Cache\CacheableMetadata;
|
|
||||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
|
||||||
// use Drupal\Core\Url;
|
|
||||||
// use Drupal\core\render\RenderContext;
|
|
||||||
use Drupal\flag_lists\FlagListsService;
|
use Drupal\flag_lists\FlagListsService;
|
||||||
|
use Drupal\flag_lists\Entity\FlaggingCollection;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||||
/**
|
/**
|
||||||
* Class AjaxHomeController.
|
* Class AjaxHomeController.
|
||||||
*/
|
*/
|
||||||
class MaterioFlagController extends ControllerBase {
|
class MaterioFlagController extends ControllerBase {
|
||||||
|
|
||||||
/**
|
|
||||||
* Drupal\Core\Entity\EntityManagerInterface definition.
|
|
||||||
*
|
|
||||||
* @var \Drupal\Core\Entity\EntityManagerInterface
|
|
||||||
*/
|
|
||||||
// protected $entityManager;
|
|
||||||
/**
|
|
||||||
* Drupal\language\ConfigurableLanguageManagerInterface definition.
|
|
||||||
*
|
|
||||||
* @var \Drupal\language\ConfigurableLanguageManagerInterface
|
|
||||||
*/
|
|
||||||
// protected $languageManager;
|
|
||||||
/**
|
|
||||||
* Drupal\Core\Render\RendererInterface definition.
|
|
||||||
*
|
|
||||||
* @var \Drupal\Core\Render\RendererInterface
|
|
||||||
*/
|
|
||||||
// protected $renderer;
|
|
||||||
/**
|
|
||||||
* Drupal\Core\Render\RendererInterface definition.
|
|
||||||
*
|
|
||||||
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
|
|
||||||
*/
|
|
||||||
// protected $entityTypeManager;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Drupal\Core\Render\RendererInterface definition.
|
|
||||||
*
|
|
||||||
* @var \Drupal\flag_lists\FlagListsService
|
* @var \Drupal\flag_lists\FlagListsService
|
||||||
*/
|
*/
|
||||||
protected $flaglists;
|
protected $flaglists;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a new AjaxHomeController object.
|
* @var \Drupal\user\User
|
||||||
*/
|
*/
|
||||||
// public function __construct(EntityManagerInterface $entity_manager, ConfigurableLanguageManagerInterface $language_manager, RendererInterface $renderer, EntityTypeManagerInterface $entity_type_manager) {
|
protected $user;
|
||||||
// $this->entityManager = $entity_manager;
|
|
||||||
// $this->languageManager = $language_manager;
|
|
||||||
// $this->renderer = $renderer;
|
|
||||||
// $this->entityTypeManager = $entity_type_manager;
|
|
||||||
// }
|
|
||||||
public function __construct(FlagListsService $flag_lists_service ) {
|
|
||||||
$this->flaglists = $flag_lists_service;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@inheritdoc}
|
* {@inheritdoc}
|
||||||
|
@ -71,9 +32,18 @@ class MaterioFlagController extends ControllerBase {
|
||||||
public static function create(ContainerInterface $container) {
|
public static function create(ContainerInterface $container) {
|
||||||
return new static(
|
return new static(
|
||||||
$container->get('flaglists'),
|
$container->get('flaglists'),
|
||||||
|
$container->get('current_user')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructs a new MaterioFlagController object.
|
||||||
|
*/
|
||||||
|
public function __construct(FlagListsService $flag_lists_service, AccountProxyInterface $account) {
|
||||||
|
$this->flaglists = $flag_lists_service;
|
||||||
|
$this->user = $account;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hello.
|
* Hello.
|
||||||
*
|
*
|
||||||
|
@ -82,21 +52,6 @@ class MaterioFlagController extends ControllerBase {
|
||||||
*/
|
*/
|
||||||
public function getUsersFlaggingCollections() {
|
public function getUsersFlaggingCollections() {
|
||||||
|
|
||||||
// $data['data'] = ['test', 'hello'];
|
|
||||||
|
|
||||||
// $data['data'] = $this->flaglists->getUsersFlaggingCollections();
|
|
||||||
|
|
||||||
// $data['#cache'] = [
|
|
||||||
// // 'max-age' => \Drupal\Core\Cache\Cache::PERMANENT,
|
|
||||||
// 'tags' => ['materio-flag-cache'],
|
|
||||||
// // 'contexts' => [
|
|
||||||
// // 'languages:language_content'
|
|
||||||
// // ]
|
|
||||||
// ];
|
|
||||||
// $response = new CacheableJsonResponse($data);
|
|
||||||
// $response->addCacheableDependency(CacheableMetadata::createFromRenderArray($data));
|
|
||||||
// return $response;
|
|
||||||
|
|
||||||
$colls = $this->flaglists->getUsersFlaggingCollections();
|
$colls = $this->flaglists->getUsersFlaggingCollections();
|
||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
|
@ -110,4 +65,28 @@ class MaterioFlagController extends ControllerBase {
|
||||||
return new JsonResponse($data);
|
return new JsonResponse($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function createUserFlaggingCollection(Request $request) {
|
||||||
|
// dpm($request);
|
||||||
|
$post_data = json_decode( $request->getContent(),TRUE);
|
||||||
|
$name = $post_data['name'];
|
||||||
|
|
||||||
|
$newFlagColl = FlaggingCollection::Create([
|
||||||
|
'type' => 'flagging_collection_type',
|
||||||
|
'name' => $name,
|
||||||
|
'user_id' => $this->user->id(),
|
||||||
|
'templateflag' => 'dossier'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$newFlagColl->save();
|
||||||
|
|
||||||
|
$data = [
|
||||||
|
'status' => $newFlagColl->get('status')->value,
|
||||||
|
'id' => $newFlagColl->id(),
|
||||||
|
'name' => $newFlagColl->getName(),
|
||||||
|
'newflagcoll_toarray' => $newFlagColl->toArray()
|
||||||
|
];
|
||||||
|
return new JsonResponse($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,6 +61,13 @@ fieldset[data-v-340aa566] {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
li input[data-v-0e1971fa] {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
li span.mdi-plus-box[data-v-0e1971fa] {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#user-tools[data-v-4e9a834e]{
|
#user-tools[data-v-4e9a834e]{
|
||||||
margin-right:0.5em;
|
margin-right:0.5em;
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -4,14 +4,20 @@
|
||||||
class="mdi mdi-folder-outline"
|
class="mdi mdi-folder-outline"
|
||||||
>My folders</h4>
|
>My folders</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li v-for="flag in flags" :key="flag.id">
|
<li v-if="flags" v-for="flag in flags" :key="flag.id">
|
||||||
<h5>{{ flag.name }}</h5>
|
<h5>{{ flag.name }}</h5>
|
||||||
</li>
|
</li>
|
||||||
<li ref="create-flag">
|
<li ref="create-flag">
|
||||||
<h5
|
<span class="mdi mdi-folder-plus-outline"/>
|
||||||
class="mdi mdi-folder-plus-outline"
|
<input
|
||||||
|
placeholder="new folder"
|
||||||
|
v-model="new_folder_name"
|
||||||
|
/>
|
||||||
|
<span
|
||||||
|
class="mdi mdi-plus-box"
|
||||||
|
v-if="new_folder_name"
|
||||||
@click.prevent="onCreateFlag()"
|
@click.prevent="onCreateFlag()"
|
||||||
>new folder</h5>
|
/>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -24,7 +30,7 @@ import { mapState, mapActions } from 'vuex'
|
||||||
export default {
|
export default {
|
||||||
name: "userFlags",
|
name: "userFlags",
|
||||||
data: () => ({
|
data: () => ({
|
||||||
|
new_folder_name: ""
|
||||||
}),
|
}),
|
||||||
computed: {
|
computed: {
|
||||||
...mapState({
|
...mapState({
|
||||||
|
@ -35,13 +41,27 @@ export default {
|
||||||
...mapActions({
|
...mapActions({
|
||||||
createFlag: 'User/createFlag'
|
createFlag: 'User/createFlag'
|
||||||
}),
|
}),
|
||||||
onLogout () {
|
onCreateFlag () {
|
||||||
console.log("UserFlags onCreateFlag")
|
console.log("UserFlags onCreateFlag", this.new_folder_name)
|
||||||
this.userLogout()
|
this.createFlag(this.new_folder_name);
|
||||||
|
// .then(({ data }) => {
|
||||||
|
// console.log("UserFlag new folder", data.status);
|
||||||
|
// })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
li{
|
||||||
|
// cursor: pointer;
|
||||||
|
// h5{
|
||||||
|
// }
|
||||||
|
input{
|
||||||
|
border: none
|
||||||
|
}
|
||||||
|
span.mdi-plus-box{
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
class="mdi mdi-logout"
|
class="mdi mdi-logout"
|
||||||
title="logout"
|
title="logout"
|
||||||
></a>
|
></a>
|
||||||
<UserFlags v-if="flags"/>
|
<UserFlags/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -172,11 +172,18 @@ export default {
|
||||||
Promise.reject(error);
|
Promise.reject(error);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
createFlag({ dispatch, commit, state }) {
|
createFlag({ dispatch, commit, state }, new_flag_name) {
|
||||||
|
console.log("user createFlag", new_flag_name);
|
||||||
// https://drupal.stackexchange.com/questions/248539/cant-get-flagging-api-to-accept-post-request
|
// https://drupal.stackexchange.com/questions/248539/cant-get-flagging-api-to-accept-post-request
|
||||||
return REST.post("/entity/flagging_collection?_format=json")
|
const params = {
|
||||||
|
name: new_flag_name
|
||||||
|
};
|
||||||
|
return MA.post("materio_flag/create_user_flagging_collection", params)
|
||||||
.then(({ data }) => {
|
.then(({ data }) => {
|
||||||
console.log("user REST createFlag data", data);
|
console.log("user MA createFlag data", data);
|
||||||
|
if (data.status) {
|
||||||
|
dispatch('getUserFlags');
|
||||||
|
}
|
||||||
// commit("setFlags", data);
|
// commit("setFlags", data);
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
|
Loading…
Reference in New Issue