mirror of
				https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
				synced 2025-11-04 12:22:47 +00:00 
			
		
		
		
	Let the Corpus owner change Roles of followers
This commit is contained in:
		@@ -41,9 +41,9 @@ class CorpusFollowerList extends ResourceList {
 | 
			
		||||
          <td>
 | 
			
		||||
            <div class="input-field disable-on-click list-action-trigger" data-list-action="update-role">
 | 
			
		||||
              <select>
 | 
			
		||||
                <option value="Viewer" ${values['role.name'] === 'Viewer' ? 'selected' : ''}>Viewer</option>
 | 
			
		||||
                <option value="Contributor" ${values['role.name'] === 'Contributor' ? 'selected' : ''}>Contributor</option>
 | 
			
		||||
                <option value="Administrator" ${values['role.name'] === 'Administrator' ? 'selected' : ''}>Administrator</option>
 | 
			
		||||
                <option value="Viewer" ${values['role-name'] === 'Viewer' ? 'selected' : ''}>Viewer</option>
 | 
			
		||||
                <option value="Contributor" ${values['role-name'] === 'Contributor' ? 'selected' : ''}>Contributor</option>
 | 
			
		||||
                <option value="Administrator" ${values['role-name'] === 'Administrator' ? 'selected' : ''}>Administrator</option>
 | 
			
		||||
              </select>
 | 
			
		||||
            </div>
 | 
			
		||||
          </td>
 | 
			
		||||
@@ -176,6 +176,7 @@ class CorpusFollowerList extends ResourceList {
 | 
			
		||||
        case 'replace': {
 | 
			
		||||
          let re = new RegExp(`^/users/${this.userId}/corpora/${this.corpusId}/corpus_follower_associations/([A-Za-z0-9]*)/role$`);
 | 
			
		||||
          if (re.test(operation.path)) {
 | 
			
		||||
            console.log('role updated');
 | 
			
		||||
            let [match, jobId, valueName] = operation.path.match(re);
 | 
			
		||||
            this.replace(jobId, valueName, operation.value);
 | 
			
		||||
          }
 | 
			
		||||
 
 | 
			
		||||
@@ -69,13 +69,13 @@ class Utils {
 | 
			
		||||
    return Utils.mergeObjectsDeep(mergedObject, ...objects.slice(2));
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static addCorpusFollowerPermissionRequest(corpusId, followerId, permission) {
 | 
			
		||||
  static updateCorpusFollowerRole(corpusId, followerId, roleName) {
 | 
			
		||||
    return new Promise((resolve, reject) => {
 | 
			
		||||
      fetch(`/corpora/${corpusId}/followers/${followerId}/permissions/${permission}/add`, {method: 'POST', headers: {Accept: 'application/json'}})
 | 
			
		||||
      fetch(`/corpora/${corpusId}/followers/${followerId}/role`, {method: 'POST', headers: {Accept: 'application/json', 'Content-Type': 'application/json'}, body: JSON.stringify({role: roleName})})
 | 
			
		||||
        .then(
 | 
			
		||||
          (response) => {
 | 
			
		||||
            if (response.ok) {
 | 
			
		||||
              app.flash(`Permission added`, 'corpus');
 | 
			
		||||
              app.flash('Role updated', 'corpus');
 | 
			
		||||
              resolve(response);
 | 
			
		||||
              return;
 | 
			
		||||
            } else {
 | 
			
		||||
@@ -91,27 +91,6 @@ class Utils {
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static removeCorpusFollowerPermissionRequest(corpusId, followerId, permission) {
 | 
			
		||||
    return new Promise((resolve, reject) => {
 | 
			
		||||
      fetch(`/corpora/${corpusId}/followers/${followerId}/permissions/${permission}/remove`, {method: 'POST', headers: {Accept: 'application/json'}})
 | 
			
		||||
        .then(
 | 
			
		||||
          (response) => {
 | 
			
		||||
            if (response.ok) {
 | 
			
		||||
              app.flash(`Permission removed`, 'corpus');
 | 
			
		||||
              resolve(response);
 | 
			
		||||
            } else {
 | 
			
		||||
              app.flash(`${response.statusText}`, 'error');
 | 
			
		||||
              reject(response);
 | 
			
		||||
            }
 | 
			
		||||
          },
 | 
			
		||||
          (response) => {
 | 
			
		||||
            app.flash('Something went wrong', 'error');
 | 
			
		||||
            reject(response);
 | 
			
		||||
          }
 | 
			
		||||
        );
 | 
			
		||||
    }); 
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static enableCorpusIsPublicRequest(userId, corpusId) {
 | 
			
		||||
    return new Promise((resolve, reject) => {
 | 
			
		||||
      let corpus;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user