anchor.diff:                  State#?STATE{stages_count = NewSCount};
   
               {set_abortable, true} ->
  -                gui_jq:prop(<<"update_button">>, <<"disabled">>, <<"">>),
  +                gui_jq:prop(<<"abort_button">>, <<"disabled">>, <<"">>),
                   gui_comet:flush(),
                   State;
   
               {set_abortable, false} ->
  -                gui_jq:prop(<<"update_button">>, <<"disabled">>, <<"disabled">>),
  +                gui_jq:prop(<<"abort_button">>, <<"disabled">>, <<"disabled">>),
                   gui_comet:flush(),
                   State;
   
  
positive.code: %% ====================================================================
  event(init) ->
      gui_jq:bind_key_to_click(<<"13">>, <<"update_button">>),
  
      {ok, Pid} = gui_comet:spawn(fun() -> comet_loop(#?STATE{}) end),
      updater:set_callback(fun(Event, State) -> update_progress(Pid, Event, State) end),
  
negative.code:     {JobsCount - length(lists:dropwhile(fun(J) -> J =/= Job end, Jobs)) + 1, JobsCount}.
  
  
  %% get_job_progress/4
  %% ====================================================================
  %% @doc Returns overall jobs progress in current stage and also progress
  %% of current job.
  -spec get_job_progress(JobProgress :: float(), JobIndex :: integer(), JobsCount :: integer(), ActionType :: atom()) -> Result
      when Result :: {JobsProgress :: float(), NewJobProgress :: float()}.
  %% ====================================================================
  get_job_progress(JobProgress, JobIndex, JobsCount, install) ->
      NewProgress = (JobProgress + 1) / 2,
      {100 * (JobIndex + JobProgress - 1) / JobsCount, NewProgress};
  