This is perfectly normal colloquial English.
Your difficulty is that the so-called "future tense" is only one way of conveying future time in English. (I belong to the party of linguists who don't believe that English has a future tense, but we don't need to get into that).
Clauses beginning with subordinating conjunctions such as "if", "when", "while", "after", "before" hardly ever have an explicit "will" in them - we use a present verb for future meaning:
After he finishes ...
If you need anything ...
Before they come ...
all may be future in meaning. (The second and third could also be present in meaning: it depends on the context).
Here, the construction used is the present perfect "you have done". In such a clause this has "future perfect" meaning - something like when (in the future) you are in the state of having done everything you could.