Syncfusion Essential Gantt for JavaScript is an option to consider.

Sample with source code
- Every resource in must be one line: Yes. In Resource view Gantt all the resources are rendered in separate rows.
- The "task" could have a color or a texture as background: Yes. This can be done as shown below:
<script type="text/javascript">
$(function () {
$("#resourceGantt").ejGantt({
queryTaskbarInfo: function (args) {
var obj = $("#resourceGantt").data("ejGantt");
var data = args.data.item;
if (data.progress > 80) {
args.progressbarBorder = args.progressbarBackground = "#f5d59c";
args.taskbarBorder = args.taskbarBackground = "orange";
$(args.taskbar).find(".e-gantt-childtaskbar-progress").css("background-image", "none");
}
else if (data.progress == 50) {
args.progressbarBorder = args.progressbarBackground = "lightGreen";
args.taskbarBorder = args.taskbarBackground = "Green";
$(args.taskbar).find(".e-gantt-childtaskbar-progress").css("background-image", "none");
}
else if (data.progress < 50) {
args.progressbarBorder = args.progressbarBackground = "lightBlue";
args.taskbarBorder = args.taskbarBackground = "Blue";
$(args.taskbar).find(".e-gantt-childtaskbar-progress").css("background-image", "none");
}
else {
args.progressbarBorder = args.progressbarBackground = "#9c9cf3";
args.taskbarBorder = args.taskbarBackground = "Blue";
$(args.taskbar).find(".e-gantt-childtaskbar-progress").css("background-image", "none");
}
},
//.. });
}); </script>
- The background line that connect the tasks: Yes. Can we done as shown below:
<script type="text/javascript">
$(function () {
$("#resourceGantt").ejGantt({
queryTaskbarInfo: function (args) {
var obj = $("#resourceGantt").data("ejGantt"),
startPoint = obj._getTaskLeft(args.data.item.startDate),
left = obj._getTaskLeft(args.data.parentItem.eResourceChildTasks[args.data.parentItem.eResourceChildTasks.length-1].item.endDate);
var checkElement = $(args.taskbar).closest(".e-chartcell").find(".test");
if (!checkElement.length) {
$(args.taskbar).closest(".e-chartcell").append('<div class ="test" style="height:7px;margin-top: 18px;background-color:blue"></div>');
$(args.taskbar).closest(".e-chartcell").find(".test").css("width", (left + 20) - startPoint);
$(args.taskbar).closest(".e-chartcell").find(".test").css("margin-left", startPoint);
} }, //.. });
});
</script>
- A way to indicate the completion % of any task OR a way to show where a resource is, in his own row: Yes. Progress bar can be enabled by using progressMapping property.
<script type="text/javascript">
$(function () {
$("#resourceGantt").ejGantt({
progressMapping: "progress",
//..
});
});
</script>
The whole product is available for free through the community license if you qualify (less than 1 million USD in revenue).
Note: I work for Syncfusion.