|  | @@ -370,6 +370,99 @@ if (Meteor.isServer) {
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |    });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +  /**
 | 
	
		
			
				|  |  | +   * @operation edit_custom_field
 | 
	
		
			
				|  |  | +   * @summary Update a Custom Field
 | 
	
		
			
				|  |  | +   *
 | 
	
		
			
				|  |  | +   * @param {string} name the name of the custom field
 | 
	
		
			
				|  |  | +   * @param {string} type the type of the custom field
 | 
	
		
			
				|  |  | +   * @param {string} settings the settings object of the custom field
 | 
	
		
			
				|  |  | +   * @param {boolean} showOnCard should we show the custom field on cards?
 | 
	
		
			
				|  |  | +   * @param {boolean} automaticallyOnCard should the custom fields automatically be added on cards?
 | 
	
		
			
				|  |  | +   * @param {boolean} showLabelOnMiniCard should the label of the custom field be shown on minicards?
 | 
	
		
			
				|  |  | +   * @return_type {_id: string}
 | 
	
		
			
				|  |  | +   */
 | 
	
		
			
				|  |  | +  JsonRoutes.add(
 | 
	
		
			
				|  |  | +    'PUT',
 | 
	
		
			
				|  |  | +    '/api/boards/:boardId/custom-fields/:customFieldId',
 | 
	
		
			
				|  |  | +    function(req, res) {
 | 
	
		
			
				|  |  | +      Authentication.checkUserId(req.userId);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      const paramFieldId = req.params.customFieldId;
 | 
	
		
			
				|  |  | +      const paramBoardId = req.params.boardId;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      if (req.body.hasOwnProperty('name')) {
 | 
	
		
			
				|  |  | +        CustomFields.direct.update(
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            _id: paramFieldId,
 | 
	
		
			
				|  |  | +            boardId: paramBoardId,
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          { $set: { title: req.body.name } },
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      if (req.body.hasOwnProperty('type')) {
 | 
	
		
			
				|  |  | +        CustomFields.direct.update(
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            _id: paramFieldId,
 | 
	
		
			
				|  |  | +            boardId: paramBoardId,
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          { $set: { title: req.body.type } },
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      if (req.body.hasOwnProperty('settings')) {
 | 
	
		
			
				|  |  | +        CustomFields.direct.update(
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            _id: paramFieldId,
 | 
	
		
			
				|  |  | +            boardId: paramBoardId,
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          // TODO: should I just wholesale set the settings obj?
 | 
	
		
			
				|  |  | +          { $set: { title: req.body.settings } },
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      if (req.body.hasOwnProperty('showOnCard')) {
 | 
	
		
			
				|  |  | +        CustomFields.direct.update(
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            _id: paramFieldId,
 | 
	
		
			
				|  |  | +            boardId: paramBoardId,
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          { $set: { title: req.body.showOnCard } },
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      if (req.body.hasOwnProperty('automaticallyOnCard')) {
 | 
	
		
			
				|  |  | +        CustomFields.direct.update(
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            _id: paramFieldId,
 | 
	
		
			
				|  |  | +            boardId: paramBoardId,
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          { $set: { title: req.body.automaticallyOnCard } },
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      if (req.body.hasOwnProperty('alwaysOnCard')) {
 | 
	
		
			
				|  |  | +        CustomFields.direct.update(
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            _id: paramFieldId,
 | 
	
		
			
				|  |  | +            boardId: paramBoardId,
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          { $set: { title: req.body.alwaysOnCard } },
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +      if (req.body.hasOwnProperty('showLabelOnMiniCard')) {
 | 
	
		
			
				|  |  | +        CustomFields.direct.update(
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            _id: paramFieldId,
 | 
	
		
			
				|  |  | +            boardId: paramBoardId,
 | 
	
		
			
				|  |  | +          },
 | 
	
		
			
				|  |  | +          { $set: { title: req.body.showLabelOnMiniCard } },
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      JsonRoutes.sendResult(res, {
 | 
	
		
			
				|  |  | +        code: 200,
 | 
	
		
			
				|  |  | +        data: { _id: paramFieldId },
 | 
	
		
			
				|  |  | +      });
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +  );
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    /**
 | 
	
		
			
				|  |  |     * @operation delete_custom_field
 | 
	
		
			
				|  |  |     * @summary Delete a Custom Fields attached to a board
 |