MOBILE-4248 actionsmenu: Create actions menu component
parent
dad514dbac
commit
19625470ee
|
@ -524,6 +524,7 @@
|
||||||
"addon.mod_choice.savemychoice": "choice",
|
"addon.mod_choice.savemychoice": "choice",
|
||||||
"addon.mod_choice.userchoosethisoption": "choice",
|
"addon.mod_choice.userchoosethisoption": "choice",
|
||||||
"addon.mod_choice.yourselection": "choice",
|
"addon.mod_choice.yourselection": "choice",
|
||||||
|
"addon.mod_data.actions": "data",
|
||||||
"addon.mod_data.addentries": "data",
|
"addon.mod_data.addentries": "data",
|
||||||
"addon.mod_data.advancedsearch": "data",
|
"addon.mod_data.advancedsearch": "data",
|
||||||
"addon.mod_data.alttext": "data",
|
"addon.mod_data.alttext": "data",
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
<ion-list>
|
||||||
|
<ion-item button class="ion-text-wrap" (click)="onItemClick(item)" *ngFor="let item of items" detail="false"
|
||||||
|
[attr.aria-label]="item.text | translate">
|
||||||
|
<ion-label>
|
||||||
|
<p class="item-heading">{{ item.text | translate }}</p>
|
||||||
|
</ion-label>
|
||||||
|
<ion-icon [name]="item.icon" slot="end" aria-hidden="true"></ion-icon>
|
||||||
|
</ion-item>
|
||||||
|
</ion-list>
|
|
@ -0,0 +1,45 @@
|
||||||
|
// (C) Copyright 2015 Moodle Pty Ltd.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
// See the License for the specific language governing permissions and
|
||||||
|
// limitations under the License.
|
||||||
|
|
||||||
|
import { Component, Input } from '@angular/core';
|
||||||
|
import { PopoverController } from '@singletons';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Component that displays the actionsmenu.
|
||||||
|
*/
|
||||||
|
@Component({
|
||||||
|
selector: 'addon-mod-data-actionsmenu',
|
||||||
|
templateUrl: 'actionsmenu.html',
|
||||||
|
})
|
||||||
|
export class AddonModDataActionsMenuComponent {
|
||||||
|
|
||||||
|
@Input() items: AddonModDataActionsMenuItem[] = [];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute item action and dismiss the popover.
|
||||||
|
*
|
||||||
|
* @param item item from which the action will be executed.
|
||||||
|
*/
|
||||||
|
async onItemClick(item: AddonModDataActionsMenuItem): Promise<void> {
|
||||||
|
item.action();
|
||||||
|
await PopoverController.dismiss();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface AddonModDataActionsMenuItem {
|
||||||
|
text: string;
|
||||||
|
icon: string;
|
||||||
|
action: () => void;
|
||||||
|
};
|
|
@ -18,11 +18,13 @@ import { CoreCourseComponentsModule } from '@features/course/components/componen
|
||||||
import { AddonModDataIndexComponent } from './index';
|
import { AddonModDataIndexComponent } from './index';
|
||||||
import { AddonModDataSearchComponent } from './search/search';
|
import { AddonModDataSearchComponent } from './search/search';
|
||||||
import { CoreCompileHtmlComponentModule } from '@features/compile/components/compile-html/compile-html.module';
|
import { CoreCompileHtmlComponentModule } from '@features/compile/components/compile-html/compile-html.module';
|
||||||
|
import { AddonModDataActionsMenuComponent } from './actionsmenu/actionsmenu';
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
declarations: [
|
declarations: [
|
||||||
AddonModDataIndexComponent,
|
AddonModDataIndexComponent,
|
||||||
AddonModDataSearchComponent,
|
AddonModDataSearchComponent,
|
||||||
|
AddonModDataActionsMenuComponent,
|
||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
CoreSharedModule,
|
CoreSharedModule,
|
||||||
|
@ -32,6 +34,7 @@ import { CoreCompileHtmlComponentModule } from '@features/compile/components/com
|
||||||
exports: [
|
exports: [
|
||||||
AddonModDataIndexComponent,
|
AddonModDataIndexComponent,
|
||||||
AddonModDataSearchComponent,
|
AddonModDataSearchComponent,
|
||||||
|
AddonModDataActionsMenuComponent,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class AddonModDataComponentsModule {}
|
export class AddonModDataComponentsModule {}
|
||||||
|
|
Loading…
Reference in New Issue