mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-26 07:49:28 +01:00
Calendar: Disable convert actions if they don't support integrated app
This commit is contained in:
parent
aed4b78dda
commit
60a486298c
@ -1017,6 +1017,9 @@ class calendar_uilist extends calendar_ui
|
|||||||
'allowOnMultiple' => false,
|
'allowOnMultiple' => false,
|
||||||
'url' => 'menuaction=infolog.infolog_ui.edit&type=task&action=calendar&action_id=$id',
|
'url' => 'menuaction=infolog.infolog_ui.edit&type=task&action=calendar&action_id=$id',
|
||||||
'popup' => Link::get_registry('infolog', 'add_popup'),
|
'popup' => Link::get_registry('infolog', 'add_popup'),
|
||||||
|
// Limit infolog convert to only the apps that support it (some entries may be other apps via integration)
|
||||||
|
'enabled' => 'javaScript:app.calendar.action_convert_enabled_check',
|
||||||
|
'convert_apps' => Api\Hooks::implemented('infolog_set')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if($GLOBALS['egw_info']['user']['apps']['mail'])
|
if($GLOBALS['egw_info']['user']['apps']['mail'])
|
||||||
@ -1063,6 +1066,9 @@ class calendar_uilist extends calendar_ui
|
|||||||
'onExecute' => 'javaScript:app.calendar.action_open',
|
'onExecute' => 'javaScript:app.calendar.action_open',
|
||||||
'open' => '{"app": "timesheet", "type": "add", "extra": "link_app[]=$app&link_id[]=$app_id"}',
|
'open' => '{"app": "timesheet", "type": "add", "extra": "link_app[]=$app&link_id[]=$app_id"}',
|
||||||
'popup' => Link::get_registry('timesheet', 'add_popup'),
|
'popup' => Link::get_registry('timesheet', 'add_popup'),
|
||||||
|
// Limit timesheet convert to only the apps that support it (some entries may be other apps via integration)
|
||||||
|
'enabled' => 'javaScript:app.calendar.action_convert_enabled_check',
|
||||||
|
'convert_apps' => Api\Hooks::implemented('timesheet_set')
|
||||||
);
|
);
|
||||||
$actions['timesheet-add'] = array( // automatic add for multiple events
|
$actions['timesheet-add'] = array( // automatic add for multiple events
|
||||||
'icon' => 'timesheet/navbar',
|
'icon' => 'timesheet/navbar',
|
||||||
|
@ -1667,6 +1667,25 @@ var CalendarApp = /** @class */ (function (_super) {
|
|||||||
this.egw.open_link(url, _action.data.target, _action.data.popup);
|
this.egw.open_link(url, _action.data.target, _action.data.popup);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
* Check to see if we know how to convert this entry to the given app
|
||||||
|
*
|
||||||
|
* The current entry may not be an actual calendar event, it may be some other app
|
||||||
|
* that is participating via integration hook. This is determined by checking the
|
||||||
|
* hooks defined for <appname>_set, indicating that the app knows how to provide
|
||||||
|
* information for that application
|
||||||
|
*
|
||||||
|
* @param {egwAction} _action
|
||||||
|
* @param {egwActionObject[]} _events
|
||||||
|
*/
|
||||||
|
CalendarApp.prototype.action_convert_enabled_check = function (_action, _events) {
|
||||||
|
var supported_apps = _action.data.convert_apps || [];
|
||||||
|
var entry = egw.dataGetUIDdata(_events[0].id);
|
||||||
|
if (supported_apps && entry && entry.data) {
|
||||||
|
return supported_apps.length > 0 && supported_apps.indexOf(entry.data.app) >= 0;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
};
|
||||||
/**
|
/**
|
||||||
* Context menu action (on a single event) in non-listview to generate ical
|
* Context menu action (on a single event) in non-listview to generate ical
|
||||||
*
|
*
|
||||||
|
@ -1816,6 +1816,29 @@ class CalendarApp extends EgwApp
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check to see if we know how to convert this entry to the given app
|
||||||
|
*
|
||||||
|
* The current entry may not be an actual calendar event, it may be some other app
|
||||||
|
* that is participating via integration hook. This is determined by checking the
|
||||||
|
* hooks defined for <appname>_set, indicating that the app knows how to provide
|
||||||
|
* information for that application
|
||||||
|
*
|
||||||
|
* @param {egwAction} _action
|
||||||
|
* @param {egwActionObject[]} _events
|
||||||
|
*/
|
||||||
|
action_convert_enabled_check(_action, _events) : boolean
|
||||||
|
{
|
||||||
|
let supported_apps = _action.data.convert_apps || [];
|
||||||
|
let entry = egw.dataGetUIDdata(_events[0].id);
|
||||||
|
|
||||||
|
if(supported_apps && entry && entry.data)
|
||||||
|
{
|
||||||
|
return supported_apps.length > 0 && supported_apps.indexOf(entry.data.app) >= 0;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Context menu action (on a single event) in non-listview to generate ical
|
* Context menu action (on a single event) in non-listview to generate ical
|
||||||
*
|
*
|
||||||
|
Loading…
Reference in New Issue
Block a user