Abonnement löschen

Bitte im Modul Corporate Content die Möglichkeit schaffen, ein Abonnement vollständig zu löschen. Für einen Relaunch haben wir das FS-Projekt kopiert. Nun sind aber noch Abonnements aktiv, die nicht mehr genutzt werden sollen. Auch, wenn man fälschlicherweise ein Abonnement hinzufügt, bekommt man es nicht wieder los.

2 Comments
dominik_koenig
Returning Observer

Das ist momentan per Script möglich. Ich weiß leider nicht ob das noch funktioniert, ist aber bestimmt ein Anhaltspunkt 🙂

##############

import de.espirit.firstspirit.common.gui.CMSDialog;

import de.espirit.firstspirit.access.packagepool.PackageManager;

localProject = context.getProject();

localMasterLanguage = localProject.getMasterLanguage();

scriptFormData = context.showForm();

if(scriptFormData == null) {

    return;

}

String projectName = (String)scriptFormData.get(localMasterLanguage, "projectName").get();

String packageName = (String)scriptFormData.get(localMasterLanguage, "packageName").get();

String publishGroupName = (String)scriptFormData.get(localMasterLanguage, "publishGroupName").get();

packageManager = context.getConnection().getService(PackageManager.SERVICE_NAME);

publishGroupList = packageManager.getPublishGroups();

publishGroup = null;

for(thisPublishGroup : publishGroupList) {

if(thisPublishGroup.getName().equals(publishGroupName)) {

publishGroup = thisPublishGroup;

break;

}

}

if(publishGroup == null) {

CMSDialog.showErrorDialog("Publish group with name " + publishGroupName + " not found");

return;

}

subscription = null;

for(thisSubscription : publishGroup.getSubscriptions()) {

if(thisSubscription.getPackage().getName().equals(packageName) && thisSubscription.getSubscriber().getName().equals(projectName)) {

subscription = thisSubscription;

break;

}

}

if(subscription == null) {

CMSDialog.showErrorDialog("Subscription of package " + packageName + " in project " + projectName + " not found");

return;

}

if(subscription.isActive()) {

CMSDialog.showInfoDialog("Subscription is still active, please deactivate it before deletion");

return;

}

subscription.delete();

CMSDialog.showInfoDialog("Done!");

TimoMeister
Returning Responder

Das funktioniert super! Hier noch das benötigte Formular.

  <CMS_INPUT_TEXT name="projectName" singleLine="no" useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="projectName"/>

    </LANGINFOS>

  </CMS_INPUT_TEXT>

  <CMS_INPUT_TEXT name="packageName" singleLine="no" useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="packageName"/>

    </LANGINFOS>

  </CMS_INPUT_TEXT>

  <CMS_INPUT_TEXT name="publishGroupName" singleLine="no" useLanguages="no">

    <LANGINFOS>

      <LANGINFO lang="*" label="publishGroupName"/>

    </LANGINFOS>

  </CMS_INPUT_TEXT>

Dennoch wäre es schön, diese Funktion in der GUI zu haben.