├── gemfile.d └── foreman-tasks.rb ├── lib ├── foreman-tasks.rb ├── foreman_tasks │ ├── version.rb │ ├── tasks │ │ ├── dynflow.rake │ │ ├── test.rake │ │ ├── reschedule_long_running_tasks_checker.rake │ │ └── generate_task_actions.rake │ ├── authorizer_ext.rb │ ├── task_error.rb │ ├── test_extensions.rb │ ├── triggers.rb │ ├── dynflow.rb │ ├── test_helpers.rb │ ├── dynflow │ │ └── configuration.rb │ └── continuous_output.rb └── tasks │ └── gettext.rake ├── webpack ├── ForemanTasks │ ├── Routes │ │ ├── ShowTask │ │ │ ├── showTask.scss │ │ │ ├── index.js │ │ │ ├── ShowTask.js │ │ │ └── __tests__ │ │ │ │ ├── __snapshots__ │ │ │ │ └── ShowTask.test.js.snap │ │ │ │ └── ShowTask.test.js │ │ ├── ForemanTasksRouter.js │ │ ├── __snapshots__ │ │ │ ├── ForemanTasksRouter.test.js.snap │ │ │ └── ForemanTasksRoutes.test.js.snap │ │ ├── ForemanTasksRoutes.test.js │ │ ├── ForemanTasksRoutes.js │ │ └── ForemanTasksRouter.test.js │ ├── index.js │ ├── ForemanTasksSelectors.js │ ├── Components │ │ ├── TasksTable │ │ │ ├── TasksIndexPage.js │ │ │ ├── formatters │ │ │ │ ├── durationCellFormmatter.js │ │ │ │ ├── __test__ │ │ │ │ │ ├── dateCellFormmatter.test.js │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── dateCellFormmatter.test.js.snap │ │ │ │ │ │ ├── actionNameCellFormatter.test.js.snap │ │ │ │ │ │ ├── selectionHeaderCellFormatter.test.js.snap │ │ │ │ │ │ ├── selectionCellFormatter.test.js.snap │ │ │ │ │ │ ├── actionCellFormatter.test.js.snap │ │ │ │ │ │ └── durationCellFormmatter.test.js.snap │ │ │ │ │ ├── actionNameCellFormatter.test.js │ │ │ │ │ ├── selectionCellFormatter.test.js │ │ │ │ │ ├── actionCellFormatter.test.js │ │ │ │ │ ├── selectionHeaderCellFormatter.test.js │ │ │ │ │ └── durationCellFormmatter.test.js │ │ │ │ ├── dateCellFormmatter.js │ │ │ │ ├── actionNameCellFormatter.js │ │ │ │ ├── selectionHeaderCellFormatter.js │ │ │ │ ├── index.js │ │ │ │ ├── actionCellFormatter.js │ │ │ │ └── selectionCellFormatter.js │ │ │ ├── TasksTablePage.scss │ │ │ ├── __tests__ │ │ │ │ ├── TasksTable.test.js │ │ │ │ ├── TasksIndexPage.test.js │ │ │ │ ├── SubTasksPage.test.js │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── TasksTableActions.test.js.snap │ │ │ │ │ ├── TasksIndexPage.test.js.snap │ │ │ │ │ ├── TasksTable.test.js.snap │ │ │ │ │ └── SubTasksPage.test.js.snap │ │ │ │ ├── TasksTable.fixtures.js │ │ │ │ └── TasksTablePage.test.js │ │ │ ├── Components │ │ │ │ ├── __test__ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── TableSelectionCell.test.js.snap │ │ │ │ │ │ ├── TableSelectionHeaderCell.test.js.snap │ │ │ │ │ │ └── ActionSelectButton.test.js.snap │ │ │ │ │ ├── ActionSelectButton.test.js │ │ │ │ │ ├── TableSelectionCell.test.js │ │ │ │ │ ├── TableSelectionHeaderCell.test.js │ │ │ │ │ └── SelectAllAlert.test.js │ │ │ │ ├── TableSelectionCell.js │ │ │ │ ├── ConfirmModal │ │ │ │ │ ├── ConfirmModalSelectors.js │ │ │ │ │ └── __test__ │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ └── ConfirmModalSelectors.test.js.snap │ │ │ │ ├── TableSelectionHeaderCell.js │ │ │ │ └── ActionSelectButton.js │ │ │ ├── SubTasksPage.js │ │ │ ├── TasksTableConstants.js │ │ │ └── index.js │ │ ├── TaskDetails │ │ │ ├── TaskDetailsConstants.js │ │ │ ├── TasksDetailsHelper.js │ │ │ ├── __tests__ │ │ │ │ ├── TaskDetails.fixtures.js │ │ │ │ ├── TaskDetailsActions.test.js │ │ │ │ ├── TaskDetails.test.js │ │ │ │ └── __snapshots__ │ │ │ │ │ └── TaskDetailsActions.test.js.snap │ │ │ ├── Components │ │ │ │ ├── __tests__ │ │ │ │ │ ├── Locks.test.js │ │ │ │ │ ├── TaskHelper.test.js │ │ │ │ │ ├── Task.test.js │ │ │ │ │ ├── Raw.test.js │ │ │ │ │ ├── RunningSteps.test.js │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── RunningSteps.test.js.snap │ │ │ │ │ └── Errors.test.js │ │ │ │ ├── TaskHelper.js │ │ │ │ └── TaskSkeleton.js │ │ │ └── TaskDetails.scss │ │ ├── TasksDashboard │ │ │ ├── Components │ │ │ │ ├── TasksTimeRow │ │ │ │ │ ├── TasksTimeRow.scss │ │ │ │ │ ├── TasksTimeRow.test.js │ │ │ │ │ ├── Components │ │ │ │ │ │ └── TimeDropDown │ │ │ │ │ │ │ └── TimeDropDown.test.js │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── TasksTimeRow.test.js.snap │ │ │ │ │ └── TasksTimeRow.js │ │ │ │ ├── TasksCardsGrid │ │ │ │ │ ├── Components │ │ │ │ │ │ ├── PausedTasksCard │ │ │ │ │ │ │ ├── PausedTasksCard.test.js │ │ │ │ │ │ │ ├── PausedTasksCard.js │ │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ │ │ └── PausedTasksCard.test.js.snap │ │ │ │ │ │ ├── RunningTasksCard │ │ │ │ │ │ │ ├── RunningTasksCard.test.js │ │ │ │ │ │ │ ├── RunningTasksCard.js │ │ │ │ │ │ │ └── __snapshots__ │ │ │ │ │ │ │ │ └── RunningTasksCard.test.js.snap │ │ │ │ │ │ ├── StoppedTasksCard │ │ │ │ │ │ │ ├── OtherInfo.test.js │ │ │ │ │ │ │ ├── StoppedTasksCard.test.js │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ └── OtherInfo.test.js.snap │ │ │ │ │ │ │ └── StoppedTasksCard.scss │ │ │ │ │ │ ├── TasksDonutCard │ │ │ │ │ │ │ ├── TasksDonutCard.scss │ │ │ │ │ │ │ └── TasksDonutCard.test.js │ │ │ │ │ │ ├── TasksDonutChart │ │ │ │ │ │ │ ├── TasksDonutChart.scss │ │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ │ └── TasksDonutChartHelper.test.js.snap │ │ │ │ │ │ │ ├── TasksDonutChartConstants.js │ │ │ │ │ │ │ └── TasksDonutChart.test.js │ │ │ │ │ │ └── ScheduledTasksCard │ │ │ │ │ │ │ ├── ScheduledTasksCard.scss │ │ │ │ │ │ │ └── ScheduledTasksCard.test.js │ │ │ │ │ ├── TasksCardsGrid.fixtures.js │ │ │ │ │ └── TasksCardsGrid.test.js │ │ │ │ └── TasksLabelsRow │ │ │ │ │ ├── TasksLabelsRow.scss │ │ │ │ │ └── __snapshots__ │ │ │ │ │ └── TasksLabelsRow.test.js.snap │ │ │ ├── TasksDashboardPropTypes.js │ │ │ ├── __tests__ │ │ │ │ ├── TasksDashboard.test.js │ │ │ │ ├── TasksDashboardHelper.test.js │ │ │ │ ├── TasksDashboardActions.test.js │ │ │ │ └── __snapshots__ │ │ │ │ │ └── TasksDashboard.test.js.snap │ │ │ ├── index.js │ │ │ └── TasksDashboard.scss │ │ ├── common │ │ │ ├── urlHelpers.js │ │ │ └── ToastsHelpers │ │ │ │ ├── ToastTypesConstants.js │ │ │ │ └── index.js │ │ └── TaskActions │ │ │ └── TaskActionsConstants.js │ ├── __snapshots__ │ │ └── ForemanTasks.test.js.snap │ ├── ForemanTasks.js │ ├── ForemanTasks.test.js │ └── ForemanTasksReducers.js ├── __mocks__ │ └── foremanReact │ │ ├── common │ │ ├── urlHelpers.js │ │ ├── I18n.js │ │ └── helpers.js │ │ ├── components │ │ ├── Pagination │ │ │ └── index.js │ │ ├── Layout │ │ │ └── LayoutActions.js │ │ ├── common │ │ │ ├── dates │ │ │ │ ├── RelativeDateTime.js │ │ │ │ └── LongDateTime.js │ │ │ ├── ActionButtons │ │ │ │ └── ActionButtons.js │ │ │ ├── MessageBox.js │ │ │ ├── table.js │ │ │ └── table │ │ │ │ └── actionsHelpers │ │ │ │ └── actionTypeCreator.js │ │ └── ToastsList │ │ │ └── index.js │ │ ├── redux │ │ ├── middlewares │ │ │ └── IntervalMiddleware.js │ │ └── API │ │ │ ├── index.js │ │ │ └── APISelectors.js │ │ ├── routes │ │ └── common │ │ │ └── PageLayout │ │ │ ├── components │ │ │ └── ExportButton │ │ │ │ └── ExportButton.js │ │ │ └── PageLayout.js │ │ └── constants.js └── index.js ├── Gemfile ├── .prettierrc ├── .stylelintrc ├── babel.config.js ├── test ├── unit │ ├── config │ │ └── environment.rb │ ├── tasks_setting_test.rb │ └── summarizer_test.rb ├── support │ ├── dummy_task_group.rb │ ├── dummy_active_job.rb │ ├── dummy_recurring_dynflow_action.rb │ └── dummy_dynflow_action.rb ├── factories │ ├── recurring_logic_factory.rb │ └── triggering_factory.rb ├── graphql │ └── queries │ │ ├── tasks_query_test.rb │ │ ├── recurring_logics_query_test.rb │ │ ├── task_query_test.rb │ │ └── recurring_logic_test.rb ├── foreman_tasks_test_helper.rb ├── controllers │ └── recurring_logics_controller_test.rb ├── lib │ └── concerns │ │ └── polling_action_extensions_test.rb ├── tasks │ └── generate_task_actions_test.rb └── helpers │ └── foreman_tasks │ └── foreman_tasks_helper_test.rb ├── app ├── assets │ ├── javascripts │ │ └── foreman_tasks │ │ │ └── foreman_tasks.js │ └── stylesheets │ │ └── foreman_tasks │ │ ├── trigger_form.css │ │ └── foreman_tasks.css ├── views │ ├── foreman_tasks │ │ ├── api │ │ │ ├── tasks │ │ │ │ ├── index.json.rabl │ │ │ │ ├── show.json.rabl │ │ │ │ └── details.json.rabl │ │ │ ├── recurring_logics │ │ │ │ ├── show.json.rabl │ │ │ │ ├── update.json.rabl │ │ │ │ ├── index.json.rabl │ │ │ │ ├── main.json.rabl │ │ │ │ └── base.json.rabl │ │ │ └── locks │ │ │ │ └── show.json.rabl │ │ ├── recurring_logics │ │ │ ├── _tab_related.html.erb │ │ │ └── show.html.erb │ │ ├── task_groups │ │ │ ├── _detail.html.erb │ │ │ ├── _common.html.erb │ │ │ └── _tab_related.html.erb │ │ ├── tasks │ │ │ ├── _lock_card.html.erb │ │ │ ├── show.html.erb │ │ │ └── dashboard │ │ │ │ ├── _tasks_status.html.erb │ │ │ │ └── _latest_tasks_in_error_warning.html.erb │ │ └── layouts │ │ │ └── react.html.erb │ ├── tasks_mailer │ │ ├── long_tasks.text.erb │ │ └── long_tasks.html.erb │ └── common │ │ └── _trigger_form.html.erb ├── models │ └── foreman_tasks │ │ ├── task_group_member.rb │ │ ├── task │ │ ├── task_cancelled_exception.rb │ │ └── status_explicator.rb │ │ ├── tasks_mail_notification.rb │ │ ├── recurring_logic_cancelled_exception.rb │ │ ├── task_group.rb │ │ ├── concerns │ │ ├── host_action_subject.rb │ │ ├── user_extensions.rb │ │ └── action_subject.rb │ │ └── task_groups │ │ └── recurring_logic_task_group.rb ├── lib │ ├── actions │ │ ├── middleware │ │ │ ├── hide_secrets.rb │ │ │ ├── inherit_task_groups.rb │ │ │ ├── rails_executor_wrap.rb │ │ │ ├── load_setting_values.rb │ │ │ ├── recurring_logic.rb │ │ │ ├── keep_current_timezone.rb │ │ │ └── proxy_batch_triggering.rb │ │ ├── action_with_sub_plans.rb │ │ ├── serializers │ │ │ └── active_record_serializer.rb │ │ ├── foreman │ │ │ └── puppetclass │ │ │ │ └── import.rb │ │ ├── deliver_long_running_tasks_notification.rb │ │ ├── helpers │ │ │ ├── lifecycle_logging.rb │ │ │ ├── lock.rb │ │ │ └── with_continuous_output.rb │ │ └── recurring_action.rb │ └── foreman_tasks │ │ └── concerns │ │ └── polling_action_extensions.rb ├── helpers │ └── foreman_tasks │ │ └── tasks_helper.rb ├── controllers │ ├── foreman_tasks │ │ ├── react_controller.rb │ │ └── concerns │ │ │ ├── parameters │ │ │ ├── recurring_logic.rb │ │ │ └── triggering.rb │ │ │ └── hosts_controller_extension.rb │ └── concerns │ │ └── foreman_tasks │ │ └── find_tasks_common.rb ├── mailers │ └── tasks_mailer.rb ├── graphql │ ├── types │ │ ├── triggering.rb │ │ ├── recurring_logic.rb │ │ └── task.rb │ └── mutations │ │ └── recurring_logics │ │ └── cancel.rb └── services │ └── ui_notifications │ ├── tasks.rb │ └── tasks │ ├── task_paused_owner.rb │ ├── task_bulk_stop.rb │ ├── task_bulk_cancel.rb │ ├── tasks_running_long.rb │ └── task_bulk_resume.rb ├── locale ├── de │ └── LC_MESSAGES │ │ └── foreman_tasks.mo ├── en │ └── LC_MESSAGES │ │ └── foreman_tasks.mo ├── es │ └── LC_MESSAGES │ │ └── foreman_tasks.mo ├── fr │ └── LC_MESSAGES │ │ └── foreman_tasks.mo ├── ja │ └── LC_MESSAGES │ │ └── foreman_tasks.mo ├── ka │ └── LC_MESSAGES │ │ └── foreman_tasks.mo ├── ko │ └── LC_MESSAGES │ │ └── foreman_tasks.mo ├── ru │ └── LC_MESSAGES │ │ └── foreman_tasks.mo ├── pt_BR │ └── LC_MESSAGES │ │ └── foreman_tasks.mo ├── zh_CN │ └── LC_MESSAGES │ │ └── foreman_tasks.mo └── zh_TW │ └── LC_MESSAGES │ └── foreman_tasks.mo ├── .eslintrc ├── db ├── seeds.d │ ├── 60-dynflow_proxy_feature.rb │ ├── 61-foreman_tasks_bookmarks.rb │ ├── 20-foreman_tasks_permissions.rb │ └── 30-notification_blueprints.rb └── migrate │ ├── 20150814204140_add_task_type_value_index.rb │ ├── 20140324104010_remove_foreman_tasks_progress.rb │ ├── 20140813215942_add_parent_task_id.rb │ ├── 20181019135324_add_remote_task_operation.rb │ ├── 20190318153925_add_task_state_updated_at.foreman_tasks.rb │ ├── 20210708123832_add_parent_task_id_to_remote_tasks.foreman_tasks.rb │ ├── 20200519093217_drop_dynflow_allow_dangerous_actions_setting.foreman_tasks.rb │ ├── 20211123170430_tasks_settings_to_dsl_category.rb │ ├── 20171026082635_add_task_action.foreman_tasks.rb │ ├── 20151022123457_add_recurring_logic_state.rb │ ├── 20210720115251_add_purpose_to_recurring_logic.rb │ ├── 20150817102538_add_delay_attributes.rb │ ├── 20160920151810_add_more_lock_indexes.rb │ ├── 20150907124936_create_recurring_logic.rb │ ├── 20131209122644_create_foreman_tasks_locks.rb │ ├── 20151112152108_create_triggerings.rb │ ├── 20200611090846_add_task_lock_index_on_resource_type_and_task_id.rb │ ├── 20180207150921_add_remote_tasks.foreman_tasks.rb │ ├── 20160924213030_change_tasks_widget_names.rb │ ├── 20131205204140_create_foreman_tasks.rb │ ├── 20181206124952_migrate_non_exclusive_locks_to_links.foreman_tasks.rb │ ├── 20150907131503_create_task_groups.rb │ ├── 20181206131627_make_locks_exclusive.foreman_tasks.rb │ ├── 20181206123910_create_foreman_tasks_links.foreman_tasks.rb │ ├── 20181206131436_drop_old_locks.foreman_tasks.rb │ ├── 20180216092715_use_uuid.rb │ └── 20200517215015_rename_bookmarks_controller.rb ├── bin └── foreman-tasks ├── .tx └── config ├── .github └── workflows │ ├── js_tests.yml │ ├── release.yml │ ├── test-breaking.yaml │ └── ruby_tests.yml ├── script ├── rails └── npm_link_foreman_js.sh ├── .gitignore ├── deploy ├── foreman-tasks.service └── foreman-tasks.sysconfig └── package.json /gemfile.d/foreman-tasks.rb: -------------------------------------------------------------------------------- 1 | gem 'sqlite3' 2 | -------------------------------------------------------------------------------- /lib/foreman-tasks.rb: -------------------------------------------------------------------------------- 1 | require 'foreman_tasks' 2 | -------------------------------------------------------------------------------- /webpack/ForemanTasks/Routes/ShowTask/showTask.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gemspec 4 | -------------------------------------------------------------------------------- /webpack/ForemanTasks/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './ForemanTasks'; 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "singleQuote": true, 3 | "trailingComma": "es5" 4 | } 5 | -------------------------------------------------------------------------------- /webpack/ForemanTasks/Routes/ShowTask/index.js: -------------------------------------------------------------------------------- 1 | export { default } from './ShowTask'; 2 | -------------------------------------------------------------------------------- /.stylelintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "stylelint-config-standard", 4 | ], 5 | } 6 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['@theforeman/builder/babel'], 3 | }; 4 | -------------------------------------------------------------------------------- /lib/foreman_tasks/version.rb: -------------------------------------------------------------------------------- 1 | module ForemanTasks 2 | VERSION = '11.0.6'.freeze 3 | end 4 | -------------------------------------------------------------------------------- /test/unit/config/environment.rb: -------------------------------------------------------------------------------- 1 | # dummy appllication.rb - for unit testing dynflow-executor 2 | -------------------------------------------------------------------------------- /webpack/__mocks__/foremanReact/common/urlHelpers.js: -------------------------------------------------------------------------------- 1 | export const getURIsearch = () => 'a=b'; 2 | -------------------------------------------------------------------------------- /app/assets/javascripts/foreman_tasks/foreman_tasks.js: -------------------------------------------------------------------------------- 1 | /* 2 | *= require foreman_tasks/trigger_form.js 3 | */ 4 | -------------------------------------------------------------------------------- /app/views/foreman_tasks/api/tasks/index.json.rabl: -------------------------------------------------------------------------------- 1 | collection @tasks 2 | extends "foreman_tasks/api/tasks/show" 3 | -------------------------------------------------------------------------------- /webpack/ForemanTasks/ForemanTasksSelectors.js: -------------------------------------------------------------------------------- 1 | export const selectForemanTasks = state => state.foremanTasks || {}; 2 | -------------------------------------------------------------------------------- /test/support/dummy_task_group.rb: -------------------------------------------------------------------------------- 1 | module Support 2 | class DummyTaskGroup < ForemanTasks::TaskGroup 3 | end 4 | end 5 | -------------------------------------------------------------------------------- /app/assets/stylesheets/foreman_tasks/trigger_form.css: -------------------------------------------------------------------------------- 1 | div.form-group div.trigger_fields { 2 | margin-top: 15px; 3 | } 4 | 5 | -------------------------------------------------------------------------------- /webpack/__mocks__/foremanReact/components/Pagination/index.js: -------------------------------------------------------------------------------- 1 | const Pagination = () => jest.fn(); 2 | export default Pagination; 3 | -------------------------------------------------------------------------------- /locale/de/LC_MESSAGES/foreman_tasks.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theforeman/foreman-tasks/HEAD/locale/de/LC_MESSAGES/foreman_tasks.mo -------------------------------------------------------------------------------- /locale/en/LC_MESSAGES/foreman_tasks.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theforeman/foreman-tasks/HEAD/locale/en/LC_MESSAGES/foreman_tasks.mo -------------------------------------------------------------------------------- /locale/es/LC_MESSAGES/foreman_tasks.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theforeman/foreman-tasks/HEAD/locale/es/LC_MESSAGES/foreman_tasks.mo -------------------------------------------------------------------------------- /locale/fr/LC_MESSAGES/foreman_tasks.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theforeman/foreman-tasks/HEAD/locale/fr/LC_MESSAGES/foreman_tasks.mo -------------------------------------------------------------------------------- /locale/ja/LC_MESSAGES/foreman_tasks.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theforeman/foreman-tasks/HEAD/locale/ja/LC_MESSAGES/foreman_tasks.mo -------------------------------------------------------------------------------- /locale/ka/LC_MESSAGES/foreman_tasks.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theforeman/foreman-tasks/HEAD/locale/ka/LC_MESSAGES/foreman_tasks.mo -------------------------------------------------------------------------------- /locale/ko/LC_MESSAGES/foreman_tasks.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theforeman/foreman-tasks/HEAD/locale/ko/LC_MESSAGES/foreman_tasks.mo -------------------------------------------------------------------------------- /locale/ru/LC_MESSAGES/foreman_tasks.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theforeman/foreman-tasks/HEAD/locale/ru/LC_MESSAGES/foreman_tasks.mo -------------------------------------------------------------------------------- /locale/pt_BR/LC_MESSAGES/foreman_tasks.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theforeman/foreman-tasks/HEAD/locale/pt_BR/LC_MESSAGES/foreman_tasks.mo -------------------------------------------------------------------------------- /locale/zh_CN/LC_MESSAGES/foreman_tasks.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theforeman/foreman-tasks/HEAD/locale/zh_CN/LC_MESSAGES/foreman_tasks.mo -------------------------------------------------------------------------------- /locale/zh_TW/LC_MESSAGES/foreman_tasks.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/theforeman/foreman-tasks/HEAD/locale/zh_TW/LC_MESSAGES/foreman_tasks.mo -------------------------------------------------------------------------------- /app/views/foreman_tasks/api/recurring_logics/show.json.rabl: -------------------------------------------------------------------------------- 1 | object @recurring_logic 2 | 3 | extends 'foreman_tasks/api/recurring_logics/main' 4 | -------------------------------------------------------------------------------- /app/views/foreman_tasks/api/recurring_logics/update.json.rabl: -------------------------------------------------------------------------------- 1 | object @recurring_logic 2 | 3 | extends "foreman_tasks/api/recurring_logics/show" 4 | -------------------------------------------------------------------------------- /app/views/foreman_tasks/api/recurring_logics/index.json.rabl: -------------------------------------------------------------------------------- 1 | collection @recurring_logics 2 | 3 | extends 'foreman_tasks/api/recurring_logics/base' 4 | -------------------------------------------------------------------------------- /webpack/__mocks__/foremanReact/components/Layout/LayoutActions.js: -------------------------------------------------------------------------------- 1 | export const showLoading = () => null; 2 | export const hideLoading = () => null; 3 | -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "plugins": ["@theforeman/foreman"], 3 | "extends": ["plugin:@theforeman/foreman/core", "plugin:@theforeman/foreman/plugins"] 4 | } 5 | -------------------------------------------------------------------------------- /app/views/foreman_tasks/recurring_logics/_tab_related.html.erb: -------------------------------------------------------------------------------- 1 |
{`${date} time ago`}
; 4 | -------------------------------------------------------------------------------- /test/support/dummy_active_job.rb: -------------------------------------------------------------------------------- 1 | module Support 2 | class DummyActiveJob < ApplicationJob 3 | def humanized_name 4 | "Dummy action" 5 | end 6 | end 7 | end 8 | -------------------------------------------------------------------------------- /db/seeds.d/60-dynflow_proxy_feature.rb: -------------------------------------------------------------------------------- 1 | f = Feature.where(:name => 'Dynflow').first_or_create 2 | raise "Unable to create proxy feature: #{format_errors f}" if f.nil? || f.errors.any? 3 | -------------------------------------------------------------------------------- /test/support/dummy_recurring_dynflow_action.rb: -------------------------------------------------------------------------------- 1 | module Support 2 | class DummyRecurringDynflowAction < Actions::EntryAction 3 | include Actions::RecurringAction 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /app/models/foreman_tasks/task_group_member.rb: -------------------------------------------------------------------------------- 1 | module ForemanTasks 2 | class TaskGroupMember < ApplicationRecord 3 | belongs_to :task_group 4 | belongs_to :task 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /lib/foreman_tasks/tasks/dynflow.rake: -------------------------------------------------------------------------------- 1 | namespace :dynflow do 2 | task :client do 3 | ::ForemanTasks.dynflow.config.remote = true 4 | ::ForemanTasks.dynflow.initialize! 5 | end 6 | end 7 | -------------------------------------------------------------------------------- /webpack/__mocks__/foremanReact/components/common/ActionButtons/ActionButtons.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export const ActionButtons = props => ; 4 | -------------------------------------------------------------------------------- /webpack/__mocks__/foremanReact/components/common/MessageBox.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export const MessageBox = () => ; 4 | export default MessageBox; 5 | -------------------------------------------------------------------------------- /webpack/__mocks__/foremanReact/components/common/dates/LongDateTime.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | export const LongDateTime = value =>{value}
; 4 | 5 | export default LongDateTime; 6 | -------------------------------------------------------------------------------- /db/migrate/20150814204140_add_task_type_value_index.rb: -------------------------------------------------------------------------------- 1 | class AddTaskTypeValueIndex < ActiveRecord::Migration[4.2] 2 | def change 3 | add_index :foreman_tasks_tasks, [:type, :label] 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /webpack/ForemanTasks/Components/TasksTable/TasksIndexPage.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import TasksTablePage from './'; 3 | 4 | export const TasksIndexPage = props =>| <%= _('ID') %> | 5 |<%= link_to(task_group.id, foreman_tasks_task_group_url(task_group)) %> | 6 |
|---|---|
| <%= _('Task count') %> | 9 |<%= link_to(task_group.tasks.count, foreman_tasks_tasks_url(:search => "task_group.id = #{task_group.id}")) %> | 10 |
| <%= _("State") %> | 5 |<%= _("Result") %> | 6 |<%= _("No. of Tasks") %> | 7 |<%= _("Last start time") %> | 8 |
|---|---|---|---|
| <%= result.state %> | 12 |<%= result.result %> | 13 |<%= link_to result.count, main_app.foreman_tasks_tasks_path(:search => "state=#{result.state}&result=#{result.result}") %> | 14 |<%= result.started_at ? date_time_relative(result.started_at) : _('N/A') %> | 15 |
2 | <%= _("Tasks lingering in states %{states} since %{time}") % { 3 | time: @report.time - @report.interval, 4 | states: @report.states.join(', ') 5 | } %> 6 |
7 | 8 || <%= _("ID") %> | 12 |<%= _("Action") %> | 13 |<%= _("Label") %> | 14 |<%= _("State") %> | 15 |<%= _("State updated at") %> | 16 |
|---|---|---|---|---|
| <%= link_to task.id, foreman_tasks_task_url(task) %> | 20 |<%= task.action %> | 21 |<%= task.label %> | 22 |<%= task.state %> | 23 |<%= task.state_updated_at %> | 24 |
| <%= _("Name") %> | 5 |<%= _("State") %> | 6 |<%= _("Result") %> | 7 |<%= _("Started") %> | 8 |
|---|---|---|---|
| <%= link_to task.humanized[:action], defined?(main_app) ? main_app.foreman_tasks_task_path(task.id) : foreman_tasks_task_path(task.id) %> | 12 |<%= task.state %> | 13 |<%= task.result %> | 14 |<%= task.started_at ? date_time_relative(task.started_at) : _('N/A') %> | 15 |
12 | 13 | Action 14 | : 15 | 16 | 17 |
18 |19 | test 20 |21 |
22 | 23 | State 24 | : 25 | 26 | 27 | paused 28 | 29 |
30 | 31 | Input 32 | : 33 | 34 | 35 |
36 | {"locale"=>"en",
37 | "current_request_id"=>nil,
38 | "current_user_id"=>4,
39 | "current_organization_id"=>nil,
40 | "current_location_id"=>nil}
41 |
42 |
43 |
44 |
45 | Output
46 | :
47 |
48 |
49 |
50 | {}
51 |
52 |
53 |
54 |