forked from dnnsoftware/Dnn.Platform
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #66 from valadas/menu-item-create-folder
Implemented CreateFolder action and context menus
- Loading branch information
Showing
33 changed files
with
909 additions
and
85 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
54 changes: 54 additions & 0 deletions
54
...eManager.Web/src/components/actions/dnn-action-create-folder/dnn-action-create-folder.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
import { Component, Host, h, Prop } from '@stencil/core'; | ||
import { ItemsClient } from '../../../services/ItemsClient'; | ||
import state from "../../../store/store"; | ||
|
||
@Component({ | ||
tag: 'dnn-action-create-folder', | ||
styleUrl: '../dnn-action.scss', | ||
shadow: true, | ||
}) | ||
export class DnnActionCreateFolder { | ||
|
||
@Prop() parentFolderId: number; | ||
|
||
private readonly itemsClient: ItemsClient; | ||
|
||
constructor(){ | ||
this.itemsClient = new ItemsClient(state.moduleId); | ||
} | ||
|
||
private handleClick(): void { | ||
if (this.parentFolderId){ | ||
this.itemsClient.getFolderContent(this.parentFolderId, 0, 0) | ||
.then(data => { | ||
state.currentItems = data; | ||
this.showModal(); | ||
}) | ||
.catch(error => alert(error)); | ||
return; | ||
} | ||
|
||
this.showModal(); | ||
} | ||
|
||
private showModal(){ | ||
const modal = document.createElement("dnn-modal"); | ||
modal.backdropDismiss = false; | ||
modal.showCloseButton = false; | ||
const editor = document.createElement("dnn-rm-edit-folder"); | ||
modal.appendChild(editor); | ||
document.body.appendChild(modal); | ||
modal.show(); | ||
} | ||
|
||
render() { | ||
return ( | ||
<Host> | ||
<button onClick={() => this.handleClick()}> | ||
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z"/></svg> | ||
<span>{state.localization.AddFolder}</span> | ||
</button> | ||
</Host> | ||
); | ||
} | ||
} |
42 changes: 42 additions & 0 deletions
42
...r/ResourceManager.Web/src/components/actions/dnn-action-create-folder/readme.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
# dnn-action-create-folder | ||
|
||
|
||
|
||
<!-- Auto Generated Below --> | ||
|
||
|
||
## Properties | ||
|
||
| Property | Attribute | Description | Type | Default | | ||
| ---------------- | ------------------ | ----------- | -------- | ----------- | | ||
| `parentFolderId` | `parent-folder-id` | | `number` | `undefined` | | ||
|
||
|
||
## Dependencies | ||
|
||
### Used by | ||
|
||
- [dnn-rm-actions-bar](../../dnn-rm-actions-bar) | ||
- [dnn-rm-folder-context-menu](../../context-menus/dnn-rm-folder-context-menu) | ||
|
||
### Depends on | ||
|
||
- dnn-modal | ||
- [dnn-rm-edit-folder](../../dnn-rm-edit-folder) | ||
|
||
### Graph | ||
```mermaid | ||
graph TD; | ||
dnn-action-create-folder --> dnn-modal | ||
dnn-action-create-folder --> dnn-rm-edit-folder | ||
dnn-rm-edit-folder --> dnn-button | ||
dnn-button --> dnn-modal | ||
dnn-button --> dnn-button | ||
dnn-rm-actions-bar --> dnn-action-create-folder | ||
dnn-rm-folder-context-menu --> dnn-action-create-folder | ||
style dnn-action-create-folder fill:#f9f,stroke:#333,stroke-width:4px | ||
``` | ||
|
||
---------------------------------------------- | ||
|
||
*Built with [StencilJS](https://stenciljs.com/)* |
16 changes: 16 additions & 0 deletions
16
...atform/Modules/ResourceManager/ResourceManager.Web/src/components/actions/dnn-action.scss
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
:host{ | ||
display: inline-flex; | ||
} | ||
|
||
button{ | ||
cursor: pointer; | ||
border: none; | ||
background-color: transparent; | ||
margin: 0; | ||
padding: 0; | ||
display: flex; | ||
align-items: center; | ||
svg{ | ||
fill: var(--dnn-color-primary); | ||
} | ||
} |
12 changes: 12 additions & 0 deletions
12
...odules/ResourceManager/ResourceManager.Web/src/components/context-menus/context-menu.scss
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
:host{ | ||
display: flex; | ||
flex-direction: column; | ||
} | ||
:host(*){ | ||
background-color: transparent; | ||
border: none; | ||
padding: 0.5em 1em; | ||
margin: 0; | ||
border-bottom: 1px solid lightgray; | ||
white-space: nowrap; | ||
} |
24 changes: 24 additions & 0 deletions
24
...eb/src/components/context-menus/dnn-rm-folder-context-menu/dnn-rm-folder-context-menu.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
import { Component, Host, h, Prop } from '@stencil/core'; | ||
import state from '../../../store/store'; | ||
|
||
@Component({ | ||
tag: 'dnn-rm-folder-context-menu', | ||
styleUrl: '../context-menu.scss', | ||
shadow: true, | ||
}) | ||
export class DnnRmFolderContextMenu { | ||
|
||
/** The ID of the folder onto which the context menu was triggered on. */ | ||
@Prop() clickedFolderId!: number; | ||
|
||
render() { | ||
return ( | ||
<Host> | ||
{state.currentItems?.hasAddFoldersPermission && | ||
<dnn-action-create-folder parentFolderId={this.clickedFolderId} /> | ||
} | ||
</Host> | ||
); | ||
} | ||
|
||
} |
44 changes: 44 additions & 0 deletions
44
...ceManager.Web/src/components/context-menus/dnn-rm-folder-context-menu/readme.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# dnn-rm-folder-context-menu | ||
|
||
|
||
|
||
<!-- Auto Generated Below --> | ||
|
||
|
||
## Properties | ||
|
||
| Property | Attribute | Description | Type | Default | | ||
| ------------------------------ | ------------------- | ------------------------------------------------------------------ | -------- | ----------- | | ||
| `clickedFolderId` _(required)_ | `clicked-folder-id` | The ID of the folder onto which the context menu was triggered on. | `number` | `undefined` | | ||
|
||
|
||
## Dependencies | ||
|
||
### Used by | ||
|
||
- [dnn-rm-folder-list-item](../../dnn-rm-folder-list-item) | ||
- [dnn-rm-items-cardview](../../dnn-rm-items-cardview) | ||
- [dnn-rm-items-listview](../../dnn-rm-items-listview) | ||
|
||
### Depends on | ||
|
||
- [dnn-action-create-folder](../../actions/dnn-action-create-folder) | ||
|
||
### Graph | ||
```mermaid | ||
graph TD; | ||
dnn-rm-folder-context-menu --> dnn-action-create-folder | ||
dnn-action-create-folder --> dnn-modal | ||
dnn-action-create-folder --> dnn-rm-edit-folder | ||
dnn-rm-edit-folder --> dnn-button | ||
dnn-button --> dnn-modal | ||
dnn-button --> dnn-button | ||
dnn-rm-folder-list-item --> dnn-rm-folder-context-menu | ||
dnn-rm-items-cardview --> dnn-rm-folder-context-menu | ||
dnn-rm-items-listview --> dnn-rm-folder-context-menu | ||
style dnn-rm-folder-context-menu fill:#f9f,stroke:#333,stroke-width:4px | ||
``` | ||
|
||
---------------------------------------------- | ||
|
||
*Built with [StencilJS](https://stenciljs.com/)* |
Oops, something went wrong.