docs: def on_ok(self):
          """ Add the repository """
          def popup(thr, add_type, title):
              """
              Start the thread and display a popup of the plugin being cloned
              until the thread is finished
              """
              thr.start()
              tool_str = 'Cloning repository...'
              if add_type == 'image':
                  tool_str = 'Pulling image...'
              npyscreen.notify_wait(tool_str, title=title)
              while thr.is_alive():
                  time.sleep(1)
              return
  
          if self.image.value and self.link_name.value:
              api_action = Tools()
              api_image = Image(System().manifest)
              api_system = System()
              thr = threading.Thread(target=api_image.add, args=(),
                                     kwargs={'image': self.image.value,
                                             'link_name': self.link_name.value,
                                             'tag': self.tag.value,
                                             'registry': self.registry.value,
                                             'groups': self.groups.value})
              popup(thr, 'image', 'Please wait, adding image...')
              npyscreen.notify_confirm('Done adding image.', title='Added image')
              editor_args = {'tool_name': self.image.value,
                             'version': self.tag.value,
                             'get_configure': api_system.get_configure,
                             'save_configure': api_system.save_configure,
                             'restart_tools': api_system.restart_tools,
                             'start_tools': api_action.start,
                             'from_registry': True,
                             'just_downloaded': True,
                             'link_name': self.link_name.value,
                             'groups': self.groups.value}
              self.parentApp.addForm('CONFIGUREIMAGE', EditorForm,
                                     name='Specify vent.template settings for '
                                     'image pulled (optional)', **editor_args)
              self.parentApp.change_form('CONFIGUREIMAGE')
          elif self.image.value:
              npyscreen.notify_confirm('A name needs to be supplied for '
                                       'the image being added!',
                                       title='Specify a name for the image',
                                       form_color='CAUTION')
          elif self.repo.value:
              self.parentApp.repo_value['repo'] = self.repo.value.lower()
              api_repo = Repository(System().manifest)
              api_repo.repo = self.repo.value.lower()
              thr = threading.Thread(target=api_repo._clone, args=(),
                                     kwargs={'user': self.user.value,
                                             'pw': self.pw.value})
              popup(thr, 'repository', 'Please wait, adding repository...')
              self.parentApp.addForm('ADDOPTIONS',
                                     AddOptionsForm,
                                     name='Set options for new plugin'
                                          '\t\t\t\t\t\t^Q to quit',
                                     color='CONTROL')
              self.parentApp.change_form('ADDOPTIONS')
          else:
              npyscreen.notify_confirm('Either a repository or an image '
                                       'name must be specified!',
                                       title='Specify plugin to add',
                                       form_color='CAUTION')
          return