Exemple #1
0
  return async function(dispatch, getState) {
    if (databaseId) {
      try {
        const action = await dispatch(
          Databases.actions.fetch({ id: databaseId }, { reload: true }),
        );
        const database = Databases.HACK_getObjectFromAction(action);
        dispatch.action(INITIALIZE_DATABASE, database);

        // If the new scheduling toggle isn't set, run the migration
        if (database.details["let-user-control-scheduling"] == undefined) {
          dispatch(migrateDatabaseToNewSchedulingSettings(database));
        }
      } catch (error) {
        if (error.status == 404) {
          //$location.path('/admin/databases/');
        } else {
          console.error("error fetching database", databaseId, error);
        }
      }
    } else {
      const newDatabase = {
        name: "",
        engine: Object.keys(MetabaseSettings.get("engines"))[0],
        details: {},
        created: false,
      };
      dispatch.action(INITIALIZE_DATABASE, newDatabase);
    }
  };
Exemple #2
0
  return async function(dispatch, getState) {
    try {
      dispatch.action(UPDATE_DATABASE_STARTED, { database });
      const action = await dispatch(Databases.actions.update(database));
      const savedDatabase = Databases.HACK_getObjectFromAction(action);
      MetabaseAnalytics.trackEvent("Databases", "Update", database.engine);

      dispatch.action(UPDATE_DATABASE, { database: savedDatabase });
      setTimeout(() => dispatch.action(CLEAR_FORM_STATE), 3000);
    } catch (error) {
      MetabaseAnalytics.trackEvent(
        "Databases",
        "Update Failed",
        database.engine,
      );
      dispatch.action(UPDATE_DATABASE_FAILED, { error });
    }
  };
Exemple #3
0
  return async function(dispatch, getState) {
    try {
      dispatch.action(CREATE_DATABASE_STARTED, {});
      const action = await dispatch(Databases.actions.create(database));
      const createdDatabase = Databases.HACK_getObjectFromAction(action);
      MetabaseAnalytics.trackEvent("Databases", "Create", database.engine);

      dispatch.action(CREATE_DATABASE);
      dispatch(push("/admin/databases?created=" + createdDatabase.id));
    } catch (error) {
      console.error("error creating a database", error);
      MetabaseAnalytics.trackEvent(
        "Databases",
        "Create Failed",
        database.engine,
      );
      dispatch.action(CREATE_DATABASE_FAILED, { error });
    }
  };