From 41177bd4e6a52f4f73ddab39a3a17c283aa9e931 Mon Sep 17 00:00:00 2001 From: Bachir Soussi Chiadmi Date: Thu, 19 Nov 2020 17:09:48 +0100 Subject: [PATCH] creating folders from ui --- config/sync/flag.flag.dossier.yml | 32 ------ .../sync/flag.flag.flag_list_template_1.yml | 32 ------ config/sync/flag.flag.test_dossier.yml | 33 ------ .../sync/flag_lists.flag_for_list.dossier.yml | 9 -- ...sts.flag_for_list.flag_list_template_1.yml | 11 -- ...ection_type.flagging_collection_type_1.yml | 8 -- ...system.action.flag_action.dossier_flag.yml | 15 --- ...stem.action.flag_action.dossier_unflag.yml | 15 --- ....flag_action.flag_list_template_1_flag.yml | 17 --- ...lag_action.flag_list_template_1_unflag.yml | 17 --- ...m.action.flag_action.test_dossier_flag.yml | 15 --- ...action.flag_action.test_dossier_unflag.yml | 15 --- .../materio_flag/materio_flag.routing.yml | 8 ++ .../src/Controller/MaterioFlagController.php | 101 +++++++----------- .../custom/materiotheme/assets/dist/main.css | 7 ++ .../custom/materiotheme/assets/dist/main.js | 33 +++++- .../vuejs/components/User/UserFlags.vue | 36 +++++-- .../vuejs/components/User/UserTools.vue | 2 +- .../materiotheme/vuejs/store/modules/user.js | 13 ++- 19 files changed, 122 insertions(+), 297 deletions(-) delete mode 100644 config/sync/flag.flag.dossier.yml delete mode 100644 config/sync/flag.flag.flag_list_template_1.yml delete mode 100644 config/sync/flag.flag.test_dossier.yml delete mode 100644 config/sync/flag_lists.flag_for_list.dossier.yml delete mode 100644 config/sync/flag_lists.flag_for_list.flag_list_template_1.yml delete mode 100644 config/sync/flag_lists.flagging_collection_type.flagging_collection_type_1.yml delete mode 100644 config/sync/system.action.flag_action.dossier_flag.yml delete mode 100644 config/sync/system.action.flag_action.dossier_unflag.yml delete mode 100644 config/sync/system.action.flag_action.flag_list_template_1_flag.yml delete mode 100644 config/sync/system.action.flag_action.flag_list_template_1_unflag.yml delete mode 100644 config/sync/system.action.flag_action.test_dossier_flag.yml delete mode 100644 config/sync/system.action.flag_action.test_dossier_unflag.yml diff --git a/config/sync/flag.flag.dossier.yml b/config/sync/flag.flag.dossier.yml deleted file mode 100644 index 009e2b6..0000000 --- a/config/sync/flag.flag.dossier.yml +++ /dev/null @@ -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: { } diff --git a/config/sync/flag.flag.flag_list_template_1.yml b/config/sync/flag.flag.flag_list_template_1.yml deleted file mode 100644 index a8e5791..0000000 --- a/config/sync/flag.flag.flag_list_template_1.yml +++ /dev/null @@ -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: { } diff --git a/config/sync/flag.flag.test_dossier.yml b/config/sync/flag.flag.test_dossier.yml deleted file mode 100644 index 1c3ed64..0000000 --- a/config/sync/flag.flag.test_dossier.yml +++ /dev/null @@ -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: { } diff --git a/config/sync/flag_lists.flag_for_list.dossier.yml b/config/sync/flag_lists.flag_for_list.dossier.yml deleted file mode 100644 index b403d3e..0000000 --- a/config/sync/flag_lists.flag_for_list.dossier.yml +++ /dev/null @@ -1,9 +0,0 @@ -uuid: null -langcode: en -status: true -dependencies: { } -id: dossier -label: Dossier -base_flag: dossier -owner: root -weight: null diff --git a/config/sync/flag_lists.flag_for_list.flag_list_template_1.yml b/config/sync/flag_lists.flag_for_list.flag_list_template_1.yml deleted file mode 100644 index 94a5557..0000000 --- a/config/sync/flag_lists.flag_for_list.flag_list_template_1.yml +++ /dev/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 diff --git a/config/sync/flag_lists.flagging_collection_type.flagging_collection_type_1.yml b/config/sync/flag_lists.flagging_collection_type.flagging_collection_type_1.yml deleted file mode 100644 index cbf55c2..0000000 --- a/config/sync/flag_lists.flagging_collection_type.flagging_collection_type_1.yml +++ /dev/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' diff --git a/config/sync/system.action.flag_action.dossier_flag.yml b/config/sync/system.action.flag_action.dossier_flag.yml deleted file mode 100644 index 599777b..0000000 --- a/config/sync/system.action.flag_action.dossier_flag.yml +++ /dev/null @@ -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 diff --git a/config/sync/system.action.flag_action.dossier_unflag.yml b/config/sync/system.action.flag_action.dossier_unflag.yml deleted file mode 100644 index 0cf949f..0000000 --- a/config/sync/system.action.flag_action.dossier_unflag.yml +++ /dev/null @@ -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 diff --git a/config/sync/system.action.flag_action.flag_list_template_1_flag.yml b/config/sync/system.action.flag_action.flag_list_template_1_flag.yml deleted file mode 100644 index faf8b6d..0000000 --- a/config/sync/system.action.flag_action.flag_list_template_1_flag.yml +++ /dev/null @@ -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 diff --git a/config/sync/system.action.flag_action.flag_list_template_1_unflag.yml b/config/sync/system.action.flag_action.flag_list_template_1_unflag.yml deleted file mode 100644 index c1204de..0000000 --- a/config/sync/system.action.flag_action.flag_list_template_1_unflag.yml +++ /dev/null @@ -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 diff --git a/config/sync/system.action.flag_action.test_dossier_flag.yml b/config/sync/system.action.flag_action.test_dossier_flag.yml deleted file mode 100644 index e7ce1ef..0000000 --- a/config/sync/system.action.flag_action.test_dossier_flag.yml +++ /dev/null @@ -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 diff --git a/config/sync/system.action.flag_action.test_dossier_unflag.yml b/config/sync/system.action.flag_action.test_dossier_unflag.yml deleted file mode 100644 index b895433..0000000 --- a/config/sync/system.action.flag_action.test_dossier_unflag.yml +++ /dev/null @@ -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 diff --git a/web/modules/custom/materio_flag/materio_flag.routing.yml b/web/modules/custom/materio_flag/materio_flag.routing.yml index dddfe5d..93ffd51 100644 --- a/web/modules/custom/materio_flag/materio_flag.routing.yml +++ b/web/modules/custom/materio_flag/materio_flag.routing.yml @@ -5,3 +5,11 @@ materio_flag.user_flagging_collections: _title: 'User Flagging Colleciton' requirements: _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' diff --git a/web/modules/custom/materio_flag/src/Controller/MaterioFlagController.php b/web/modules/custom/materio_flag/src/Controller/MaterioFlagController.php index 7f683e9..8f857f3 100644 --- a/web/modules/custom/materio_flag/src/Controller/MaterioFlagController.php +++ b/web/modules/custom/materio_flag/src/Controller/MaterioFlagController.php @@ -4,66 +4,27 @@ namespace Drupal\materio_flag\Controller; use Drupal\Core\Controller\ControllerBase; use Symfony\Component\DependencyInjection\ContainerInterface; -// use Drupal\Core\Entity\EntityManagerInterface; -// use Drupal\language\ConfigurableLanguageManagerInterface; -// 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\Core\Session\AccountProxy; +use Drupal\Core\Session\AccountProxyInterface; use Drupal\flag_lists\FlagListsService; - +use Drupal\flag_lists\Entity\FlaggingCollection; +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\JsonResponse; /** * Class AjaxHomeController. */ 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 */ 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) { - // $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; - } + protected $user; /** * {@inheritdoc} @@ -71,9 +32,18 @@ class MaterioFlagController extends ControllerBase { public static function create(ContainerInterface $container) { return new static( $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. * @@ -82,21 +52,6 @@ class MaterioFlagController extends ControllerBase { */ 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(); $data = []; @@ -110,4 +65,28 @@ class MaterioFlagController extends ControllerBase { 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); + } + + } diff --git a/web/themes/custom/materiotheme/assets/dist/main.css b/web/themes/custom/materiotheme/assets/dist/main.css index 72d0a62..3ed61b5 100644 --- a/web/themes/custom/materiotheme/assets/dist/main.css +++ b/web/themes/custom/materiotheme/assets/dist/main.css @@ -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]{ margin-right:0.5em; diff --git a/web/themes/custom/materiotheme/assets/dist/main.js b/web/themes/custom/materiotheme/assets/dist/main.js index 4cf7ae6..0e59797 100644 --- a/web/themes/custom/materiotheme/assets/dist/main.js +++ b/web/themes/custom/materiotheme/assets/dist/main.js @@ -609,7 +609,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _vuex = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _default = {\n name: \"userFlags\",\n data: function data() {\n return {};\n },\n computed: _objectSpread({}, (0, _vuex.mapState)({\n flags: function flags(state) {\n return state.User.flags;\n }\n })),\n methods: _objectSpread({}, (0, _vuex.mapActions)({\n createFlag: 'User/createFlag'\n }), {\n onLogout: function onLogout() {\n console.log(\"UserFlags onCreateFlag\");\n this.userLogout();\n }\n })\n};\nexports.default = _default;\n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _vuex = __webpack_require__(/*! vuex */ \"./node_modules/vuex/dist/vuex.esm.js\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _default = {\n name: \"userFlags\",\n data: function data() {\n return {\n new_folder_name: \"\"\n };\n },\n computed: _objectSpread({}, (0, _vuex.mapState)({\n flags: function flags(state) {\n return state.User.flags;\n }\n })),\n methods: _objectSpread({}, (0, _vuex.mapActions)({\n createFlag: 'User/createFlag'\n }), {\n onCreateFlag: function onCreateFlag() {\n console.log(\"UserFlags onCreateFlag\", this.new_folder_name);\n this.createFlag(this.new_folder_name); // .then(({ data }) => {\n // console.log(\"UserFlag new folder\", data.status);\n // })\n }\n })\n};\nexports.default = _default;\n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -691,6 +691,17 @@ eval("// extracted by mini-css-extract-plugin\n\n//# sourceURL=webpack:///./web/ /***/ }), +/***/ "./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?vue&type=style&index=0&id=0e1971fa&lang=scss&scoped=true&": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?vue&type=style&index=0&id=0e1971fa&lang=scss&scoped=true& ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +eval("// extracted by mini-css-extract-plugin\n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib??vue-loader-options"); + +/***/ }), + /***/ "./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js?!./web/themes/custom/materiotheme/vuejs/components/User/UserTools.vue?vue&type=style&index=0&id=4e9a834e&lang=css&scoped=true&": /*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib??vue-loader-options!./web/themes/custom/materiotheme/vuejs/components/User/UserTools.vue?vue&type=style&index=0&id=4e9a834e&lang=css&scoped=true& ***! @@ -970,7 +981,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { attrs: { id: \"user-flags\" } }, [\n _c(\"h4\", { staticClass: \"mdi mdi-folder-outline\" }, [_vm._v(\"My folders\")]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n [\n _vm._l(_vm.flags, function(flag) {\n return _c(\"li\", { key: flag.id }, [\n _c(\"h5\", [_vm._v(_vm._s(flag.name))])\n ])\n }),\n _vm._v(\" \"),\n _c(\"li\", { ref: \"create-flag\" }, [\n _c(\n \"h5\",\n {\n staticClass: \"mdi mdi-folder-plus-outline\",\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.onCreateFlag()\n }\n }\n },\n [_vm._v(\"new folder\")]\n )\n ])\n ],\n 2\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { attrs: { id: \"user-flags\" } }, [\n _c(\"h4\", { staticClass: \"mdi mdi-folder-outline\" }, [_vm._v(\"My folders\")]),\n _vm._v(\" \"),\n _c(\n \"ul\",\n [\n _vm._l(_vm.flags, function(flag) {\n return _vm.flags\n ? _c(\"li\", { key: flag.id }, [\n _c(\"h5\", [_vm._v(_vm._s(flag.name))])\n ])\n : _vm._e()\n }),\n _vm._v(\" \"),\n _c(\"li\", { ref: \"create-flag\" }, [\n _c(\"span\", { staticClass: \"mdi mdi-folder-plus-outline\" }),\n _vm._v(\" \"),\n _c(\"input\", {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.new_folder_name,\n expression: \"new_folder_name\"\n }\n ],\n attrs: { placeholder: \"new folder\" },\n domProps: { value: _vm.new_folder_name },\n on: {\n input: function($event) {\n if ($event.target.composing) {\n return\n }\n _vm.new_folder_name = $event.target.value\n }\n }\n }),\n _vm._v(\" \"),\n _vm.new_folder_name\n ? _c(\"span\", {\n staticClass: \"mdi mdi-plus-box\",\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.onCreateFlag()\n }\n }\n })\n : _vm._e()\n ])\n ],\n 2\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -982,7 +993,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"user-tools\" } },\n [\n _c(\"h4\", { staticClass: \"mdi mdi-account\" }, [_vm._v(_vm._s(_vm.mail))]),\n _vm._v(\" \"),\n _vm.isAdmin\n ? _c(\"a\", {\n staticClass: \"mdi mdi-settings\",\n attrs: { href: \"/admin/content/materials\", title: \"admin\" }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"a\", {\n staticClass: \"mdi mdi-logout\",\n attrs: { href: \"/user/logout\", title: \"logout\" },\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.onLogout()\n }\n }\n }),\n _vm._v(\" \"),\n _vm.flags ? _c(\"UserFlags\") : _vm._e()\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/vuejs/components/User/UserTools.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"staticRenderFns\", function() { return staticRenderFns; });\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"user-tools\" } },\n [\n _c(\"h4\", { staticClass: \"mdi mdi-account\" }, [_vm._v(_vm._s(_vm.mail))]),\n _vm._v(\" \"),\n _vm.isAdmin\n ? _c(\"a\", {\n staticClass: \"mdi mdi-settings\",\n attrs: { href: \"/admin/content/materials\", title: \"admin\" }\n })\n : _vm._e(),\n _vm._v(\" \"),\n _c(\"a\", {\n staticClass: \"mdi mdi-logout\",\n attrs: { href: \"/user/logout\", title: \"logout\" },\n on: {\n click: function($event) {\n $event.preventDefault()\n return _vm.onLogout()\n }\n }\n }),\n _vm._v(\" \"),\n _c(\"UserFlags\")\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\n\n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/vuejs/components/User/UserTools.vue?./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options"); /***/ }), @@ -1795,7 +1806,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _UserFlags_vue_vue_type_template_id_0e1971fa_scoped_true_lang_html___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UserFlags.vue?vue&type=template&id=0e1971fa&scoped=true&lang=html& */ \"./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?vue&type=template&id=0e1971fa&scoped=true&lang=html&\");\n/* harmony import */ var _UserFlags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./UserFlags.vue?vue&type=script&lang=js& */ \"./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?vue&type=script&lang=js&\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _UserFlags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _UserFlags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(\n _UserFlags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _UserFlags_vue_vue_type_template_id_0e1971fa_scoped_true_lang_html___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _UserFlags_vue_vue_type_template_id_0e1971fa_scoped_true_lang_html___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"0e1971fa\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _UserFlags_vue_vue_type_template_id_0e1971fa_scoped_true_lang_html___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./UserFlags.vue?vue&type=template&id=0e1971fa&scoped=true&lang=html& */ \"./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?vue&type=template&id=0e1971fa&scoped=true&lang=html&\");\n/* harmony import */ var _UserFlags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./UserFlags.vue?vue&type=script&lang=js& */ \"./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?vue&type=script&lang=js&\");\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _UserFlags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _UserFlags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n/* harmony import */ var _UserFlags_vue_vue_type_style_index_0_id_0e1971fa_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./UserFlags.vue?vue&type=style&index=0&id=0e1971fa&lang=scss&scoped=true& */ \"./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?vue&type=style&index=0&id=0e1971fa&lang=scss&scoped=true&\");\n/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ \"./node_modules/vue-loader/lib/runtime/componentNormalizer.js\");\n\n\n\n\n\n\n/* normalize component */\n\nvar component = Object(_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(\n _UserFlags_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[\"default\"],\n _UserFlags_vue_vue_type_template_id_0e1971fa_scoped_true_lang_html___WEBPACK_IMPORTED_MODULE_0__[\"render\"],\n _UserFlags_vue_vue_type_template_id_0e1971fa_scoped_true_lang_html___WEBPACK_IMPORTED_MODULE_0__[\"staticRenderFns\"],\n false,\n null,\n \"0e1971fa\",\n null\n \n)\n\n/* hot reload */\nif (false) { var api; }\ncomponent.options.__file = \"web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue\"\n/* harmony default export */ __webpack_exports__[\"default\"] = (component.exports);\n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?"); /***/ }), @@ -1811,6 +1822,18 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _nod /***/ }), +/***/ "./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?vue&type=style&index=0&id=0e1971fa&lang=scss&scoped=true&": +/*!**************************************************************************************************************************************!*\ + !*** ./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?vue&type=style&index=0&id=0e1971fa&lang=scss&scoped=true& ***! + \**************************************************************************************************************************************/ +/*! no static exports found */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserFlags_vue_vue_type_style_index_0_id_0e1971fa_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../../../node_modules/css-loader/dist/cjs.js!../../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../../../node_modules/vue-loader/lib??vue-loader-options!./UserFlags.vue?vue&type=style&index=0&id=0e1971fa&lang=scss&scoped=true& */ \"./node_modules/mini-css-extract-plugin/dist/loader.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js?!./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?vue&type=style&index=0&id=0e1971fa&lang=scss&scoped=true&\");\n/* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserFlags_vue_vue_type_style_index_0_id_0e1971fa_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserFlags_vue_vue_type_style_index_0_id_0e1971fa_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserFlags_vue_vue_type_style_index_0_id_0e1971fa_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserFlags_vue_vue_type_style_index_0_id_0e1971fa_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));\n /* harmony default export */ __webpack_exports__[\"default\"] = (_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_UserFlags_vue_vue_type_style_index_0_id_0e1971fa_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0___default.a); \n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?"); + +/***/ }), + /***/ "./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?vue&type=template&id=0e1971fa&scoped=true&lang=html&": /*!*********************************************************************************************************************************!*\ !*** ./web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue?vue&type=template&id=0e1971fa&scoped=true&lang=html& ***! @@ -1963,7 +1986,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n /***/ (function(module, exports, __webpack_require__) { "use strict"; -eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _restAxios = __webpack_require__(/*! vuejs/api/rest-axios */ \"./web/themes/custom/materiotheme/vuejs/api/rest-axios.js\");\n\nvar _maAxios = __webpack_require__(/*! vuejs/api/ma-axios */ \"./web/themes/custom/materiotheme/vuejs/api/ma-axios.js\");\n\nvar _querystring = _interopRequireDefault(__webpack_require__(/*! querystring */ \"./node_modules/querystring-es3/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// import { JSONAPI } from 'vuejs/api/json-axios';\nvar _default = {\n namespaced: true,\n // initial state\n state: {\n uid: null,\n // username: '',\n mail: \"\",\n token: null,\n csrftoken: null,\n logout_token: null,\n isloggedin: false,\n isAdmin: false,\n isAdherent: false,\n canSearch: false,\n roles: [],\n flags: false\n },\n // getters\n getters: {},\n // mutations\n mutations: {\n SetCsrftoken: function SetCsrftoken(state, token) {\n state.csrftoken = token;\n },\n setToken: function setToken(state, data) {\n state.uid = data.current_user.uid; // state.username = data.username;\n\n state.mail = data.current_user.mail;\n state.token = data.csrf_token;\n state.isloggedin = true;\n state.logout_token = data.logout_token;\n },\n setUid: function setUid(state, uid) {\n state.uid = uid;\n state.isloggedin = true;\n },\n setUser: function setUser(state, data) {\n state.mail = data.mail[0].value;\n state.uuid = data.uuid[0].value;\n },\n setRoles: function setRoles(state, roles) {\n console.log(\"User setRoles\", roles);\n state.roles = [];\n\n for (var i = 0; i < roles.length; i++) {\n state.roles.push(roles[i].target_id);\n } // check if admin\n\n\n if (state.roles.indexOf(\"admin\") !== -1 || state.roles.indexOf(\"root\") !== -1) {\n // console.log('is admin');\n state.isAdmin = true;\n } // check if has access to search\n\n\n if (state.roles.indexOf(\"adherent\") !== -1) {\n // console.log('is admin');\n state.canSearch = true;\n state.isAdherent = true;\n }\n },\n setLoggedOut: function setLoggedOut(state) {\n console.log(\"setLoggedOut state\", state);\n state.uid = null;\n state.mail = \"\";\n state.token = null;\n state.isloggedin = false;\n state.logout_token = null;\n\n if (state.isAdmin) {\n // TODO: what if on a page where login is needed (as commerce checkout and cart)\n window.location.reload(true);\n }\n\n state.asAdmin = false;\n state.canSearch = false;\n },\n setFlags: function setFlags(state, flags) {\n console.log(\"User setFlags\", flags);\n state.flags = flags;\n }\n },\n // actions\n actions: {\n userRegister: function userRegister(_ref, credentials) {\n var dispatch = _ref.dispatch,\n commit = _ref.commit,\n state = _ref.state;\n return new Promise(function (resolve, reject) {\n _restAxios.REST.get(\"/session/token\").then(function (_ref2) {\n var token = _ref2.token;\n commit(\"SetCsrftoken\", token);\n\n _restAxios.REST.post(\"/user/register?_format=json\", credentials, {\n \"X-CSRF-Token\": state.csrftoken\n }).then(function (_ref3) {\n var data = _ref3.data;\n console.log(\"user REST registered\", data);\n dispatch(\"userLogin\", credentials).then(function () {\n resolve();\n });\n }).catch(function (error) {\n console.warn(\"Issue with register\", error);\n Promise.reject(error);\n });\n });\n });\n },\n userLogin: function userLogin(_ref4, credentials) {\n var dispatch = _ref4.dispatch,\n commit = _ref4.commit,\n state = _ref4.state;\n return new Promise(function (resolve, reject) {\n dispatch(\"getToken\", credentials).then(function () {\n dispatch(\"getUser\").then(function (userdata) {\n console.log(\"User Loggedin\");\n\n if (state.isAdmin) {\n window.location.reload(true);\n }\n\n resolve();\n });\n });\n });\n },\n getToken: function getToken(_ref5, credentials) {\n var dispatch = _ref5.dispatch,\n commit = _ref5.commit,\n state = _ref5.state;\n return _restAxios.REST.post(\"/user/login?_format=json\", credentials).then(function (_ref6) {\n var data = _ref6.data;\n console.log(\"user REST getToken data\", data);\n commit(\"setToken\", data);\n }).catch(function (error) {\n console.warn(\"Issue with getToken\", error);\n Promise.reject(error);\n });\n },\n getUser: function getUser(_ref7) {\n var dispatch = _ref7.dispatch,\n commit = _ref7.commit,\n state = _ref7.state;\n var params = {\n token: state.token\n };\n return _restAxios.REST.get(\"/user/\".concat(state.uid, \"?_format=json\"), params).then(function (_ref8) {\n var data = _ref8.data;\n console.log(\"user REST getUser data\", data);\n console.log(\"roles\", data.roles);\n commit(\"setUser\", data);\n\n if (data.roles) {\n commit(\"setRoles\", data.roles);\n }\n\n dispatch(\"getUserFlags\");\n }).catch(function (error) {\n console.warn(\"Issue with getUser\", error);\n Promise.reject(error);\n });\n },\n getUserFlags: function getUserFlags(_ref9) {\n var dispatch = _ref9.dispatch,\n commit = _ref9.commit,\n state = _ref9.state;\n // flags\n // REST.get('/flagging_collection/1?_format=json')\n // .then(( data ) => {\n // console.log('TEST FLAG REST data', data)\n // })\n // .catch(error => {\n // console.warn('Issue USER TEST FLAG REST', error)\n // Promise.reject(error)\n // })\n return _maAxios.MA.get(\"materio_flag/user_flagging_collections\").then(function (_ref10) {\n var data = _ref10.data;\n console.log(\"user MA getFlags data\", data);\n commit(\"setFlags\", data);\n }).catch(function (error) {\n console.warn(\"Issue USER MA getFlags\", error);\n Promise.reject(error);\n });\n },\n createFlag: function createFlag(_ref11) {\n var dispatch = _ref11.dispatch,\n commit = _ref11.commit,\n state = _ref11.state;\n // https://drupal.stackexchange.com/questions/248539/cant-get-flagging-api-to-accept-post-request\n return _restAxios.REST.post(\"/entity/flagging_collection?_format=json\").then(function (_ref12) {\n var data = _ref12.data;\n console.log(\"user REST createFlag data\", data); // commit(\"setFlags\", data);\n }).catch(function (error) {\n console.warn(\"Issue USER MA createFlag\", error);\n Promise.reject(error);\n });\n },\n userLogout: function userLogout(_ref13) {\n var commit = _ref13.commit,\n state = _ref13.state;\n\n var credentials = _querystring.default.stringify({\n token: state.token\n });\n\n _restAxios.REST.post(\"/user/logout\", credentials).then(function (resp) {\n console.log(\"userLogout resp\", resp);\n commit(\"setLoggedOut\");\n }).catch(function (error) {\n console.warn(\"Issue with logout\", error);\n Promise.reject(error);\n });\n }\n }\n};\nexports.default = _default;\n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/vuejs/store/modules/user.js?"); +eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _restAxios = __webpack_require__(/*! vuejs/api/rest-axios */ \"./web/themes/custom/materiotheme/vuejs/api/rest-axios.js\");\n\nvar _maAxios = __webpack_require__(/*! vuejs/api/ma-axios */ \"./web/themes/custom/materiotheme/vuejs/api/ma-axios.js\");\n\nvar _querystring = _interopRequireDefault(__webpack_require__(/*! querystring */ \"./node_modules/querystring-es3/index.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// import { JSONAPI } from 'vuejs/api/json-axios';\nvar _default = {\n namespaced: true,\n // initial state\n state: {\n uid: null,\n // username: '',\n mail: \"\",\n token: null,\n csrftoken: null,\n logout_token: null,\n isloggedin: false,\n isAdmin: false,\n isAdherent: false,\n canSearch: false,\n roles: [],\n flags: false\n },\n // getters\n getters: {},\n // mutations\n mutations: {\n SetCsrftoken: function SetCsrftoken(state, token) {\n state.csrftoken = token;\n },\n setToken: function setToken(state, data) {\n state.uid = data.current_user.uid; // state.username = data.username;\n\n state.mail = data.current_user.mail;\n state.token = data.csrf_token;\n state.isloggedin = true;\n state.logout_token = data.logout_token;\n },\n setUid: function setUid(state, uid) {\n state.uid = uid;\n state.isloggedin = true;\n },\n setUser: function setUser(state, data) {\n state.mail = data.mail[0].value;\n state.uuid = data.uuid[0].value;\n },\n setRoles: function setRoles(state, roles) {\n console.log(\"User setRoles\", roles);\n state.roles = [];\n\n for (var i = 0; i < roles.length; i++) {\n state.roles.push(roles[i].target_id);\n } // check if admin\n\n\n if (state.roles.indexOf(\"admin\") !== -1 || state.roles.indexOf(\"root\") !== -1) {\n // console.log('is admin');\n state.isAdmin = true;\n } // check if has access to search\n\n\n if (state.roles.indexOf(\"adherent\") !== -1) {\n // console.log('is admin');\n state.canSearch = true;\n state.isAdherent = true;\n }\n },\n setLoggedOut: function setLoggedOut(state) {\n console.log(\"setLoggedOut state\", state);\n state.uid = null;\n state.mail = \"\";\n state.token = null;\n state.isloggedin = false;\n state.logout_token = null;\n\n if (state.isAdmin) {\n // TODO: what if on a page where login is needed (as commerce checkout and cart)\n window.location.reload(true);\n }\n\n state.asAdmin = false;\n state.canSearch = false;\n },\n setFlags: function setFlags(state, flags) {\n console.log(\"User setFlags\", flags);\n state.flags = flags;\n }\n },\n // actions\n actions: {\n userRegister: function userRegister(_ref, credentials) {\n var dispatch = _ref.dispatch,\n commit = _ref.commit,\n state = _ref.state;\n return new Promise(function (resolve, reject) {\n _restAxios.REST.get(\"/session/token\").then(function (_ref2) {\n var token = _ref2.token;\n commit(\"SetCsrftoken\", token);\n\n _restAxios.REST.post(\"/user/register?_format=json\", credentials, {\n \"X-CSRF-Token\": state.csrftoken\n }).then(function (_ref3) {\n var data = _ref3.data;\n console.log(\"user REST registered\", data);\n dispatch(\"userLogin\", credentials).then(function () {\n resolve();\n });\n }).catch(function (error) {\n console.warn(\"Issue with register\", error);\n Promise.reject(error);\n });\n });\n });\n },\n userLogin: function userLogin(_ref4, credentials) {\n var dispatch = _ref4.dispatch,\n commit = _ref4.commit,\n state = _ref4.state;\n return new Promise(function (resolve, reject) {\n dispatch(\"getToken\", credentials).then(function () {\n dispatch(\"getUser\").then(function (userdata) {\n console.log(\"User Loggedin\");\n\n if (state.isAdmin) {\n window.location.reload(true);\n }\n\n resolve();\n });\n });\n });\n },\n getToken: function getToken(_ref5, credentials) {\n var dispatch = _ref5.dispatch,\n commit = _ref5.commit,\n state = _ref5.state;\n return _restAxios.REST.post(\"/user/login?_format=json\", credentials).then(function (_ref6) {\n var data = _ref6.data;\n console.log(\"user REST getToken data\", data);\n commit(\"setToken\", data);\n }).catch(function (error) {\n console.warn(\"Issue with getToken\", error);\n Promise.reject(error);\n });\n },\n getUser: function getUser(_ref7) {\n var dispatch = _ref7.dispatch,\n commit = _ref7.commit,\n state = _ref7.state;\n var params = {\n token: state.token\n };\n return _restAxios.REST.get(\"/user/\".concat(state.uid, \"?_format=json\"), params).then(function (_ref8) {\n var data = _ref8.data;\n console.log(\"user REST getUser data\", data);\n console.log(\"roles\", data.roles);\n commit(\"setUser\", data);\n\n if (data.roles) {\n commit(\"setRoles\", data.roles);\n }\n\n dispatch(\"getUserFlags\");\n }).catch(function (error) {\n console.warn(\"Issue with getUser\", error);\n Promise.reject(error);\n });\n },\n getUserFlags: function getUserFlags(_ref9) {\n var dispatch = _ref9.dispatch,\n commit = _ref9.commit,\n state = _ref9.state;\n // flags\n // REST.get('/flagging_collection/1?_format=json')\n // .then(( data ) => {\n // console.log('TEST FLAG REST data', data)\n // })\n // .catch(error => {\n // console.warn('Issue USER TEST FLAG REST', error)\n // Promise.reject(error)\n // })\n return _maAxios.MA.get(\"materio_flag/user_flagging_collections\").then(function (_ref10) {\n var data = _ref10.data;\n console.log(\"user MA getFlags data\", data);\n commit(\"setFlags\", data);\n }).catch(function (error) {\n console.warn(\"Issue USER MA getFlags\", error);\n Promise.reject(error);\n });\n },\n createFlag: function createFlag(_ref11, new_flag_name) {\n var dispatch = _ref11.dispatch,\n commit = _ref11.commit,\n state = _ref11.state;\n console.log(\"user createFlag\", new_flag_name); // https://drupal.stackexchange.com/questions/248539/cant-get-flagging-api-to-accept-post-request\n\n var params = {\n name: new_flag_name\n };\n return _maAxios.MA.post(\"materio_flag/create_user_flagging_collection\", params).then(function (_ref12) {\n var data = _ref12.data;\n console.log(\"user MA createFlag data\", data);\n\n if (data.status) {\n dispatch('getUserFlags');\n } // commit(\"setFlags\", data);\n\n }).catch(function (error) {\n console.warn(\"Issue USER MA createFlag\", error);\n Promise.reject(error);\n });\n },\n userLogout: function userLogout(_ref13) {\n var commit = _ref13.commit,\n state = _ref13.state;\n\n var credentials = _querystring.default.stringify({\n token: state.token\n });\n\n _restAxios.REST.post(\"/user/logout\", credentials).then(function (resp) {\n console.log(\"userLogout resp\", resp);\n commit(\"setLoggedOut\");\n }).catch(function (error) {\n console.warn(\"Issue with logout\", error);\n Promise.reject(error);\n });\n }\n }\n};\nexports.default = _default;\n\n//# sourceURL=webpack:///./web/themes/custom/materiotheme/vuejs/store/modules/user.js?"); /***/ }) diff --git a/web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue b/web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue index 31d1f34..e2ec5f2 100644 --- a/web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue +++ b/web/themes/custom/materiotheme/vuejs/components/User/UserFlags.vue @@ -4,14 +4,20 @@ class="mdi mdi-folder-outline" >My folders @@ -24,7 +30,7 @@ import { mapState, mapActions } from 'vuex' export default { name: "userFlags", data: () => ({ - + new_folder_name: "" }), computed: { ...mapState({ @@ -35,13 +41,27 @@ export default { ...mapActions({ createFlag: 'User/createFlag' }), - onLogout () { - console.log("UserFlags onCreateFlag") - this.userLogout() + onCreateFlag () { + console.log("UserFlags onCreateFlag", this.new_folder_name) + this.createFlag(this.new_folder_name); + // .then(({ data }) => { + // console.log("UserFlag new folder", data.status); + // }) } } } diff --git a/web/themes/custom/materiotheme/vuejs/components/User/UserTools.vue b/web/themes/custom/materiotheme/vuejs/components/User/UserTools.vue index 3d27d3f..7240516 100644 --- a/web/themes/custom/materiotheme/vuejs/components/User/UserTools.vue +++ b/web/themes/custom/materiotheme/vuejs/components/User/UserTools.vue @@ -13,7 +13,7 @@ class="mdi mdi-logout" title="logout" > - + diff --git a/web/themes/custom/materiotheme/vuejs/store/modules/user.js b/web/themes/custom/materiotheme/vuejs/store/modules/user.js index d63d63c..9dc53a9 100644 --- a/web/themes/custom/materiotheme/vuejs/store/modules/user.js +++ b/web/themes/custom/materiotheme/vuejs/store/modules/user.js @@ -172,11 +172,18 @@ export default { 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 - 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 }) => { - console.log("user REST createFlag data", data); + console.log("user MA createFlag data", data); + if (data.status) { + dispatch('getUserFlags'); + } // commit("setFlags", data); }) .catch(error => {