diff --git feeds_ui/feeds_ui.admin.inc feeds_ui/feeds_ui.admin.inc index b66f963..63f03eb 100644 --- feeds_ui/feeds_ui.admin.inc +++ feeds_ui/feeds_ui.admin.inc @@ -870,3 +870,21 @@ function theme_feeds_ui_mapping_form($variables) { $output .= drupal_render_children($form); return $output; } + +/** + * Form callback + */ +function feeds_import_unlock_form($form, &$form_state) { + drupal_set_title('This will reset all imports. Only use if you are sure no imports are currently running!', PASS_THROUGH); + $form['submit'] = array('#type' => 'submit', '#value' => t('Break lock')); + return $form; +} + +/** + * Form submit handler. Resets all feeds state. + */ +function feeds_import_unlock_form_submit($form, &$form_state) { + db_query("UPDATE feeds_source SET state = 'b:0;';"); + drupal_set_message('Lock Broken.'); + $form_state['redirect'] = array('admin/structure/feeds'); +} diff --git feeds_ui/feeds_ui.module feeds_ui/feeds_ui.module index ba76d6f..999aa3c 100644 --- feeds_ui/feeds_ui.module +++ feeds_ui/feeds_ui.module @@ -79,6 +79,14 @@ function feeds_ui_menu() { 'type' => MENU_LOCAL_TASK, 'weight' => 4, ); + $items['admin/structure/feeds/unlock'] = array( + 'title' => 'Break Lock', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('feeds_import_unlock_form'), + 'access arguments' => array('administer feeds'), + 'file' => 'feeds_ui.admin.inc', + 'type' => MENU_LOCAL_TASK, + ); return $items; }