Refactor view client controller

I refactored ViewClientController to pull button values into a model, and assign the values of the button using an exposed method. 

I added tests and checked the functionality manually, however, please let me know if there is unexpected behavior. 

The purpose of this change is to simplify the ViewClientController, and make the controller easier to test by pulling logic into a model.