Skip to content

Commit

Permalink
Merge pull request #17 from Zicrael/dev-branch
Browse files Browse the repository at this point in the history
add onStartRename item & onFinishRenameItem
  • Loading branch information
Zicrael authored Dec 28, 2018
2 parents 4dae479 + b12f4c2 commit afcbab4
Show file tree
Hide file tree
Showing 9 changed files with 103 additions and 27 deletions.
32 changes: 24 additions & 8 deletions README.MD
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ in you component file:
```

### onallowdrop()
Trigger start of dragging element
Trigger enter on drop zone

#### example

Expand All @@ -248,7 +248,7 @@ in you component file:
}
```
### ondrop()
Trigger start of dragging element
Trigger drop item action

#### example

Expand All @@ -266,7 +266,7 @@ in you component file:
```

### onadditem()
Trigger start of dragging element
Trigger add new item action

#### example

Expand All @@ -283,26 +283,42 @@ in you component file:
}
```

### onrenameitem()
Trigger start of dragging element
### onStartRenameItem()
Trigger start renaming item
#### example

in you template file:

```xml
<lib-ngx-tree-component [treeData]='youTree' (onStartRenameItem)='onStartRenameItem($event)'> </lib-ngx-tree-component>
```
in you component file:

```typescript
onStartRenameItem(event) {
console.log(event);
}
```

### onFinishRenameItem()
Trigger finish renaming item after validation
#### example

in you template file:

```xml
<lib-ngx-tree-component [treeData]='youTree' (onrenameitem)='onRenameItem($event)'> </lib-ngx-tree-component>
<lib-ngx-tree-component [treeData]='youTree' (onStartRenameItem)='onFinishRenameItem($event)'> </lib-ngx-tree-component>
```
in you component file:

```typescript
onRenameItem(event) {
onFinishRenameItem(event) {
console.log(event);
}
```

### onremoveitem()
Trigger start of dragging element
Trigger removing action item

#### example

Expand Down
32 changes: 24 additions & 8 deletions projects/ngx-tree-dnd/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ in you component file:
```

### onallowdrop()
Trigger start of dragging element
Trigger enter on drop zone

#### example

Expand All @@ -248,7 +248,7 @@ in you component file:
}
```
### ondrop()
Trigger start of dragging element
Trigger drop item action

#### example

Expand All @@ -266,7 +266,7 @@ in you component file:
```

### onadditem()
Trigger start of dragging element
Trigger add new item action

#### example

Expand All @@ -283,26 +283,42 @@ in you component file:
}
```

### onrenameitem()
Trigger start of dragging element
### onStartRenameItem()
Trigger start renaming item
#### example

in you template file:

```xml
<lib-ngx-tree-component [treeData]='youTree' (onStartRenameItem)='onStartRenameItem($event)'> </lib-ngx-tree-component>
```
in you component file:

```typescript
onStartRenameItem(event) {
console.log(event);
}
```

### onFinishRenameItem()
Trigger finish renaming item after validation
#### example

in you template file:

```xml
<lib-ngx-tree-component [treeData]='youTree' (onrenameitem)='onRenameItem($event)'> </lib-ngx-tree-component>
<lib-ngx-tree-component [treeData]='youTree' (onStartRenameItem)='onFinishRenameItem($event)'> </lib-ngx-tree-component>
```
in you component file:

```typescript
onRenameItem(event) {
onFinishRenameItem(event) {
console.log(event);
}
```

### onremoveitem()
Trigger start of dragging element
Trigger removing action item

#### example

Expand Down
2 changes: 1 addition & 1 deletion projects/ngx-tree-dnd/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ngx-tree-dnd",
"version": "2.3.2",
"version": "2.4.1",
"repository": {
"type": "git",
"url": "https://github.com/Zicrael/ngx-tree-dnd"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
</button>
</div>
<div class='d-flex'>
<button class="tree-btn edit-btn" *ngIf="config.showRenameButtons" (click)="element.options.edit = true">
<button class="tree-btn edit-btn" *ngIf="config.showRenameButtons" (click)="enableRenameMode(element)">
<fa-icon icon="edit" [style.font-size.px]='config.setIconSize'></fa-icon>
</button>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,16 @@ export class NgxTreeChildrenComponent implements AfterViewInit {
});
}

/*
Event: onStartRenameItem;
Enable rename mode in element
Call onStartRenameItem() from tree service.
*/
enableRenameMode(element) {
element.options.edit = true;
this.treeService.startRenameItem(element);
}

/*
Event: onadditem;
Generate id by new Date() by 'full year + day + time'.
Expand All @@ -108,14 +118,14 @@ export class NgxTreeChildrenComponent implements AfterViewInit {
}

/*
Event: onrenameitem;
Event: onFinishRenameItem;
Check is form valid.
Call addNewItem() from tree service.
*/
submitRename( item ) {
submitRename(item) {
if (this.renameForm.valid) {
this.showError = false;
this.treeService.renameItem(this.renameForm.value.name, item.id);
this.treeService.finishRenameItem(this.renameForm.value.name, item.id);
this.element.options.edit = false;
} else {
this.showError = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ export class NgxTreeParentComponent implements AfterViewInit {
@Output() onallowdrop: EventEmitter<any> = new EventEmitter();
@Output() ondragend: EventEmitter<any> = new EventEmitter();
@Output() onadditem: EventEmitter<any> = new EventEmitter();
@Output() onrenameitem: EventEmitter<any> = new EventEmitter();
@Output() onStartRenameItem: EventEmitter<any> = new EventEmitter();
@Output() onFinishRenameItem: EventEmitter<any> = new EventEmitter();
@Output() onremoveitem: EventEmitter<any> = new EventEmitter();

@Input()
Expand Down Expand Up @@ -101,9 +102,14 @@ export class NgxTreeParentComponent implements AfterViewInit {
this.onadditem.emit(event);
}
);
this.treeService.onRenameItem.subscribe(
this.treeService.onStartRenameItem.subscribe(
(event) => {
this.onrenameitem.emit(event);
this.onStartRenameItem.emit(event);
}
);
this.treeService.onFinishRenameItem.subscribe(
(event) => {
this.onFinishRenameItem.emit(event);
}
);
this.treeService.onRemoveItem.subscribe(
Expand Down
21 changes: 19 additions & 2 deletions projects/ngx-tree-dnd/src/lib/ngx-tree-dnd.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ export class NgxTreeService {
onDragEnd = new Subject<any>();
onAddItem = new Subject<any>();
onRenameItem = new Subject<any>();
onStartRenameItem = new Subject<any>();
onFinishRenameItem = new Subject<any>();
onRemoveItem = new Subject<any>();
config = new BehaviorSubject<any>(null);
defaulConfig: TreeConfig;
Expand Down Expand Up @@ -140,19 +142,34 @@ export class NgxTreeService {
this.checkTreeLength();
}

/*
Trigger start rename element.
It`s accepts 'name' and 'id' for find item on tree and set the name.
Emit onRenameItem Subject.
*/
public startRenameItem(element) {
this.elementFinder(this.treeStorage, element.id);
// event emit
const eventEmit = {
element: this.selectedElement,
parentList: this.listOfSelectedElement
};
this.onStartRenameItem.next(eventEmit);
}

/*
Rename element.
It`s accepts 'name' and 'id' for find item on tree and set the name.
Emit onRenameItem Subject.
*/
public renameItem(name, id) {
public finishRenameItem(name, id) {
this.elementFinder(this.treeStorage, id);
// event emit
const eventEmit = {
element: this.selectedElement,
parentList: this.listOfSelectedElement
};
this.onRenameItem.next(eventEmit);
this.onFinishRenameItem.next(eventEmit);
// code
this.selectedElement.name = name;
this.selectedElement.options.edit = false;
Expand Down
3 changes: 2 additions & 1 deletion src/app/app.component.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
<!--The content below is only a placeholder and can be replaced.-->
<div>
<lib-ngx-tree-component [treeData]='myTree' (ondrop)='onDrop($event)' (onremoveitem)='onDelete($event)' (onadditem)='onadditem($event)' [config]='config'>
<lib-ngx-tree-component [treeData]='myTree' (ondrop)='onDrop($event)' (onStartRenameItem)="onStartRenameItem($event)" (onFinishRenameItem)='onFinishRenameItem($event)' (onremoveitem)='onDelete($event)' (onadditem)='onadditem($event)' [config]='config'>
</lib-ngx-tree-component>
<div id='eventInfo'></div>
</div>

10 changes: 10 additions & 0 deletions src/app/app.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,4 +84,14 @@ export class AppComponent {
console.log(this.myTree);
console.log(event);
}
onStartRenameItem(event) {
console.log('start rename');
console.log(this.myTree);
console.log(event);
}
onFinishRenameItem(event) {
console.log('finish rename');
console.log(this.myTree);
console.log(event);
}
}

0 comments on commit afcbab4

Please sign in to comment.