destinations
1 year ago
modal
10 months ago
settings
2 days ago
404.htm
1 year ago
alerts.htm
1 year ago
backups.htm
1 year ago
dashboard.htm
1 year ago
destinations.htm
9 months ago
downloads.htm
1 year ago
jobs.htm
1 year ago
main.htm
1 year ago
mfa.htm
1 year ago
queue.htm
1 year ago
schedules.htm
1 year ago
settings.htm
1 year ago
system.htm
11 months ago
queue.htm
166 lines
| 1 | <div ng-controller="queue" class="jb-list-backups-container jb-grey-0"> |
| 2 | |
| 3 | <div class="row" navigation active="menuItem"></div> |
| 4 | |
| 5 | <div class="row rounded-4 jb-white-0 jb-panel-row shadow-lg"> |
| 6 | <div class="jb-main-title rounded-3"> |
| 7 | {{ lang.t("Queue Items") }} |
| 8 | </div> |
| 9 | <div class="jb-title-description"> |
| 10 | <p>{{ lang.t("Monitor and manage all active JetBackup tasks, including backups, restores, downloads, and system actions. Expand any item for detailed controls: start a restore, download logs, stop a task, and more. |
| 11 | Customize queue behavior in Settings under the Maintenance and Logging tabs.") }}</p> |
| 12 | </div> |
| 13 | |
| 14 | <div class="row jb-table-row"> |
| 15 | <div class="table-responsive"> |
| 16 | |
| 17 | <div class="row mb-10"> |
| 18 | <div class="col-md-4 d-flex pt-2"> |
| 19 | <search placeholder="{{ lang.t('Search here...') }}" ng-model="metaData.filterValue" ng-change="fetch()"></search> |
| 20 | </div> |
| 21 | <div class="col-md-8 d-flex justify-content-end"> |
| 22 | <a ng-click="performAction(null, 'clearCompleted')" class="jb-action-button"> |
| 23 | <i class="fa-sharp fa-solid fa-broom"></i>{{ lang.t("Clear Completed") }} |
| 24 | </a> |
| 25 | </div> |
| 26 | </div> |
| 27 | |
| 28 | <div class="snake-line" ng-class="{ 'loading': initialLoading }"></div> |
| 29 | <table class="jb-table table table-hover"> |
| 30 | <thead> |
| 31 | <tr> |
| 32 | <th scope="col" class="col-2 col-md-1 col-lg-1"> |
| 33 | <button sort-by sort-meta="meta" sort-field="created" onSort="fetch()" title="{{ lang.t('Sort by Created') }}">{{ lang.t("Created") }}</button> |
| 34 | </th> |
| 35 | <th scope="col" class="col-6 col-md-4 col-lg-3"> |
| 36 | <button sort-by sort-meta="meta" sort-field="progress.message" onSort="fetch()" title="{{ lang.t('Sort by Information') }}">{{ lang.t("Information") }}</button> |
| 37 | </th> |
| 38 | <th scope="col" class="col-2 col-md-2 col-lg-2"> |
| 39 | <button sort-by sort-meta="meta" sort-field="type" onSort="fetch()" title="{{ lang.t('Sort by Type') }}">{{ lang.t("Type") }}</button> |
| 40 | </th> |
| 41 | <th scope="col" class="col-2 col-md-2 col-lg-2"> |
| 42 | {{ lang.t("Execution Time") }} |
| 43 | </th> |
| 44 | <th scope="col" class="col-1 col-md-2 col-lg-2"> |
| 45 | {{ lang.t("Status") }} |
| 46 | </th> |
| 47 | <th scope="col" class="col-1 col-md-2 col-lg-2"> |
| 48 | {{ lang.t("Source") }} |
| 49 | </th> |
| 50 | </tr> |
| 51 | </thead> |
| 52 | <tbody> |
| 53 | <tr ng-repeat-start="queue in queueItems" |
| 54 | class="jb-table-tr queue" |
| 55 | ng-click="toggleDetail($index)" |
| 56 | ng-class="{'jb-table-tr-selected': isDetailVisible($index)}"> |
| 57 | <td>{{ lang.d(queue.created) }}</td> |
| 58 | <td class="text-truncate text-truncate-queue"> |
| 59 | <span>{{ queue.progress.message }}</span> |
| 60 | <span ng-if="queue.progress.sub_message && queue.progress.sub_message !== '' && queue.status < 100"> |
| 61 | [ <span class="sub-message-truncate" title="{{ queue.progress.sub_message }}"> |
| 62 | {{ queue.progress.sub_message }} |
| 63 | </span> ] |
| 64 | </span> |
| 65 | <div class="progress mt-2" ng-if="queue.progress.sub_percentage > 0 && queue.progress.sub_percentage < 100 && queue.status < 100"> |
| 66 | <div aria-label="progressbar" class="progress-bar bg-secondary" |
| 67 | role="progressbar" |
| 68 | style="width: {{ queue.progress.sub_percentage }}%;" |
| 69 | aria-valuenow="{{ queue.progress.sub_percentage }}" |
| 70 | aria-valuemin="0" aria-valuemax="100" |
| 71 | aria-labelledby="progress-bar"> |
| 72 | {{ queue.progress.sub_percentage }}% |
| 73 | </div> |
| 74 | </div> |
| 75 | </td> |
| 76 | <td>{{queue.type_name}}</td> |
| 77 | <td>{{queue.exec_time }}</td> |
| 78 | <td> |
| 79 | <div class="progress"> |
| 80 | <div class="progress-bar" |
| 81 | role="progressbar" |
| 82 | style="width: {{ queue.status >= 100 ? 100 : queue.progress.percentage }}%;" |
| 83 | aria-valuenow="{{ queue.status >= 100 ? 100 : queue.progress.percentage }}" |
| 84 | aria-valuemin="0" |
| 85 | aria-valuemax="100" |
| 86 | ng-class="{ |
| 87 | 'bg-warning': queue.status === 101, |
| 88 | 'bg-success': queue.status === 100, |
| 89 | 'bg-primary': queue.status > 0 && queue.status < 100, |
| 90 | 'bg-danger': queue.status > 101 |
| 91 | }"> |
| 92 | {{ queue.status > 100 ? consts.STATUS_NAMES[queue.status] || 'ERROR' : queue.progress.percentage + '%' }} |
| 93 | </div> |
| 94 | </div> |
| 95 | <div class="text-muted text-center fst-italic mt-1"> |
| 96 | {{ queue.status_name }} |
| 97 | </div> |
| 98 | </td> |
| 99 | |
| 100 | <td> |
| 101 | <svg ng-show="queue.engine == 1" size="20" width="20" fill="#000000" version="1.1" id="Capa_1" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 96.24 96.24" xml:space="preserve">><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g> <path d="M48.122,0C21.587,0,0.001,21.585,0.001,48.118c0,26.535,21.587,48.122,48.12,48.122c26.532,0,48.117-21.587,48.117-48.122 C96.239,21.586,74.654,0,48.122,0z M4.857,48.118c0-6.271,1.345-12.227,3.746-17.606l20.638,56.544 C14.81,80.042,4.857,65.243,4.857,48.118z M48.122,91.385c-4.247,0-8.346-0.623-12.222-1.763L48.88,51.903l13.301,36.433 c0.086,0.215,0.191,0.411,0.308,0.596C57.992,90.514,53.16,91.385,48.122,91.385z M54.083,27.834 c2.604-0.137,4.953-0.412,4.953-0.412c2.33-0.276,2.057-3.701-0.277-3.564c0,0-7.007,0.549-11.532,0.549 c-4.25,0-11.396-0.549-11.396-0.549c-2.332-0.137-2.604,3.427-0.273,3.564c0,0,2.208,0.275,4.537,0.412l6.74,18.469l-9.468,28.395 L21.615,27.835c2.608-0.136,4.952-0.412,4.952-0.412c2.33-0.275,2.055-3.702-0.278-3.562c0,0-7.004,0.549-11.53,0.549 c-0.813,0-1.77-0.021-2.784-0.052C19.709,12.611,33.008,4.856,48.122,4.856c11.265,0,21.519,4.306,29.215,11.357 c-0.187-0.01-0.368-0.035-0.562-0.035c-4.248,0-7.264,3.702-7.264,7.679c0,3.564,2.055,6.582,4.248,10.146 c1.647,2.882,3.567,6.585,3.567,11.932c0,3.704-1.422,8-3.293,13.986l-4.315,14.421L54.083,27.834z M69.871,85.516l13.215-38.208 c2.471-6.171,3.29-11.106,3.29-15.497c0-1.591-0.104-3.07-0.292-4.449c3.38,6.163,5.303,13.236,5.301,20.758 C91.384,64.08,82.732,78.016,69.871,85.516z"></path> </g> </g></svg> |
| 102 | <svg ng-show="queue.engine == 2" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:cc="https://creativecommons.org/ns#" xmlns:rdf="https://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="https://www.w3.org/2000/svg" xmlns:sodipodi="https://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="https://www.inkscape.org/namespaces/inkscape" version="1.1" id="svg4747" width="20" height="20" viewBox="0 0 18 18" sodipodi:docname="eddie-white_18x18.svg" inkscape:export-filename="Eddie-White_100x100.png" inkscape:export-xdpi="54.860001" inkscape:export-ydpi="54.860001" inkscape:version="0.92.4 (5da689c313, 2019-01-14)">> <metadata id="metadata4753"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="https://purl.org/dc/dcmitype/StillImage" /> <dc:title></dc:title> </cc:Work> </rdf:RDF> </metadata> <defs id="defs4751" /> <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="1017" id="namedview4749" showgrid="false" inkscape:zoom="22.627417" inkscape:cx="2.3561347" inkscape:cy="14.574794" inkscape:window-x="1912" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg4747" /> <path inkscape:connector-curvature="0" id="path6964" d="M 7.3194535,0.04617566 C 7.0127929,0.12934144 7.8650324,1.5919323 7.1629118,2.8537007 6.9434623,3.047503 6.6161972,3.2211098 6.3231399,3.1278742 5.4738924,2.824033 4.7084371,2.3039888 3.8247516,2.0897488 2.4120918,1.9725107 4.0751768,2.6356331 3.9603724,4.5838824 3.7431047,5.1904974 3.5786142,5.6673992 3.46486,6.0659814 2.7720161,7.6250243 0.6888604,13.377312 0.26231409,14.958529 c -0.40482212,1.500621 -0.27003887,2.310226 0.42767054,2.787947 0.19464061,0.133412 2.22847727,0.205431 6.33729707,0.208872 h 6.0556403 l 0.47987,-1.305808 0.464236,-1.240547 0.01551,-0.01942 c 0.0028,-0.0035 -0.0028,-0.01942 0,-0.02608 0.130599,-0.274881 0.44029,-1.058591 0.417255,-1.66488 -0.644098,0.24581 -1.205888,0.929701 -1.356143,1.214354 -0.01368,-0.226168 0.178461,-0.847465 0.09395,-1.149135 -0.432458,0.359299 -0.907945,1.063591 -1.03797,1.345011 -0.01552,-0.221203 0.175754,-0.837548 0.0938,-1.129476 -0.308897,0.256587 -0.750388,0.864386 -0.897141,1.083767 -0.02083,-0.198101 0.164115,-0.787407 0.0938,-1.038112 -0.378804,0.314784 -0.844132,0.977338 -0.985759,1.233987 H 10.224405 C 8.7662394,15.224561 6.5732527,15.941204 6.1716544,12.6931 5.6628407,8.5777843 7.6941655,10.612793 9.9166595,11.400386 c -0.072366,0.253368 -0.3774632,1.025636 -0.3703053,1.44942 0.5140488,-0.177947 1.1019668,-0.841224 1.2935528,-1.064223 -0.05642,0.239005 -0.340145,0.96764 -0.333833,1.338451 0.521919,-0.180421 1.10323,-0.850813 1.29352,-1.077274 0.03879,0.01145 0.08165,0.02892 0.119957,0.03919 -0.04365,0.132461 -0.348624,0.706592 -0.385933,0.868361 0.822078,0.03392 1.555775,-0.59984 1.773369,-0.868361 2.485654,-1.609594 4.264118,-4.967046 4.642166,-6.8163388 C 18.039313,4.2671626 17.72573,3.6593603 17.00506,3.4088713 16.539485,3.247096 13.448656,3.2075309 10.443491,3.2585179 c -0.8499128,0 -2.1415955,-2.35063269 -3.0930276,-3.21231383 -0.012179,0 -0.021446,-0.0034931 -0.031301,0 z M 11.987708,5.8178633 C 15.202231,5.8123128 14.0732,12.75477 9.4162336,6.8951515 10.464743,6.1183907 11.320481,5.8191944 11.987708,5.8178633 Z" style="fill:#FF6C2C;fill-opacity:1;stroke:none;stroke-width:0.18674102" inkscape:export-filename="" inkscape:export-xdpi="90" inkscape:export-ydpi="90" /> </svg> |
| 103 | </td> |
| 104 | |
| 105 | </tr> |
| 106 | <tr ng-repeat-end ng-show="isDetailVisible($index)" |
| 107 | ng-class="{'jb-table-tr-selected': isDetailVisible($index)}"> |
| 108 | <td colspan="6" class="jb-table-elements"> |
| 109 | <div class="d-grid gap-2 d-md-flex justify-content-md-start"> |
| 110 | <div class="row g-2"> |
| 111 | |
| 112 | <!-- buttons start --> |
| 113 | <div class="col-12 col-md-auto" |
| 114 | ng-repeat="action in actions" |
| 115 | ng-if="isActionVisible(action.name, queue)"> |
| 116 | <button |
| 117 | ng-click="performAction( |
| 118 | (queue.type === consts.QUEUE_TYPE_DOWNLOAD || queue.type === consts.QUEUE_TYPE_EXPORT) |
| 119 | && action.name === consts.QUEUE_TYPE_DOWNLOAD_NAME ? queue.item_data.download_id : queue._id, |
| 120 | action.name |
| 121 | )" |
| 122 | id="jbid_{{queue._id}}_{{action.name}}" |
| 123 | name="{{action.name}}" |
| 124 | class="btn jb-full-restore-button w-100" |
| 125 | ng-class="{'jb-orange-button': action.name === consts['QUEUE_TYPE_COMPLETE_RESTORE'], 'btn-primary': action.name !== consts['QUEUE_TYPE_COMPLETE_RESTORE']}" |
| 126 | type="button"> |
| 127 | <span class="icon"> |
| 128 | <i class="fa-sharp fa-light {{action.icon}}"></i> |
| 129 | </span> |
| 130 | {{ lang.t(action.label) }} |
| 131 | </button> |
| 132 | </div> |
| 133 | <!-- buttons end --> |
| 134 | |
| 135 | </div> |
| 136 | </div> |
| 137 | </td> |
| 138 | </tr> |
| 139 | |
| 140 | <tr ng-show="!queueItems.length"> |
| 141 | <td colspan="6"> |
| 142 | {{ lang.t("No Queue Items Found.") }} |
| 143 | </td> |
| 144 | </tr> |
| 145 | </tbody> |
| 146 | </table> |
| 147 | <pagination fetch="fetch" meta="meta"></pagination> |
| 148 | |
| 149 | </div> <!-- table row --> |
| 150 | <div class="row d-flex justify-content-center"> |
| 151 | |
| 152 | <div class="col-sm-5 d-flex justify-content-center"> |
| 153 | <span class="svg-icons"><svg size="20" width="20" fill="#000000" version="1.1" id="Capa_1" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 96.24 96.24" xml:space="preserve">><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"> <g> <path d="M48.122,0C21.587,0,0.001,21.585,0.001,48.118c0,26.535,21.587,48.122,48.12,48.122c26.532,0,48.117-21.587,48.117-48.122 C96.239,21.586,74.654,0,48.122,0z M4.857,48.118c0-6.271,1.345-12.227,3.746-17.606l20.638,56.544 C14.81,80.042,4.857,65.243,4.857,48.118z M48.122,91.385c-4.247,0-8.346-0.623-12.222-1.763L48.88,51.903l13.301,36.433 c0.086,0.215,0.191,0.411,0.308,0.596C57.992,90.514,53.16,91.385,48.122,91.385z M54.083,27.834 c2.604-0.137,4.953-0.412,4.953-0.412c2.33-0.276,2.057-3.701-0.277-3.564c0,0-7.007,0.549-11.532,0.549 c-4.25,0-11.396-0.549-11.396-0.549c-2.332-0.137-2.604,3.427-0.273,3.564c0,0,2.208,0.275,4.537,0.412l6.74,18.469l-9.468,28.395 L21.615,27.835c2.608-0.136,4.952-0.412,4.952-0.412c2.33-0.275,2.055-3.702-0.278-3.562c0,0-7.004,0.549-11.53,0.549 c-0.813,0-1.77-0.021-2.784-0.052C19.709,12.611,33.008,4.856,48.122,4.856c11.265,0,21.519,4.306,29.215,11.357 c-0.187-0.01-0.368-0.035-0.562-0.035c-4.248,0-7.264,3.702-7.264,7.679c0,3.564,2.055,6.582,4.248,10.146 c1.647,2.882,3.567,6.585,3.567,11.932c0,3.704-1.422,8-3.293,13.986l-4.315,14.421L54.083,27.834z M69.871,85.516l13.215-38.208 c2.471-6.171,3.29-11.106,3.29-15.497c0-1.591-0.104-3.07-0.292-4.449c3.38,6.163,5.303,13.236,5.301,20.758 C91.384,64.08,82.732,78.016,69.871,85.516z"></path> </g> </g></svg></span> |
| 154 | <span style="margin-top: 6px; font-size: 12px;">{{ lang.t("Generated By WordPress Plugin") }}</span> |
| 155 | </div> |
| 156 | |
| 157 | <div class="col-sm-5 d-flex justify-content-center"> |
| 158 | <span class="svg-icons"><svg xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:cc="https://creativecommons.org/ns#" xmlns:rdf="https://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="https://www.w3.org/2000/svg" xmlns:sodipodi="https://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="https://www.inkscape.org/namespaces/inkscape" version="1.1" id="svg4747" width="20" height="20" viewBox="0 0 18 18" sodipodi:docname="eddie-white_18x18.svg" inkscape:export-filename="Eddie-White_100x100.png" inkscape:export-xdpi="54.860001" inkscape:export-ydpi="54.860001" inkscape:version="0.92.4 (5da689c313, 2019-01-14)">> <metadata id="metadata4753"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="https://purl.org/dc/dcmitype/StillImage" /> <dc:title></dc:title> </cc:Work> </rdf:RDF> </metadata> <defs id="defs4751" /> <sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="1017" id="namedview4749" showgrid="false" inkscape:zoom="22.627417" inkscape:cx="2.3561347" inkscape:cy="14.574794" inkscape:window-x="1912" inkscape:window-y="-8" inkscape:window-maximized="1" inkscape:current-layer="svg4747" /> <path inkscape:connector-curvature="0" id="path6964" d="M 7.3194535,0.04617566 C 7.0127929,0.12934144 7.8650324,1.5919323 7.1629118,2.8537007 6.9434623,3.047503 6.6161972,3.2211098 6.3231399,3.1278742 5.4738924,2.824033 4.7084371,2.3039888 3.8247516,2.0897488 2.4120918,1.9725107 4.0751768,2.6356331 3.9603724,4.5838824 3.7431047,5.1904974 3.5786142,5.6673992 3.46486,6.0659814 2.7720161,7.6250243 0.6888604,13.377312 0.26231409,14.958529 c -0.40482212,1.500621 -0.27003887,2.310226 0.42767054,2.787947 0.19464061,0.133412 2.22847727,0.205431 6.33729707,0.208872 h 6.0556403 l 0.47987,-1.305808 0.464236,-1.240547 0.01551,-0.01942 c 0.0028,-0.0035 -0.0028,-0.01942 0,-0.02608 0.130599,-0.274881 0.44029,-1.058591 0.417255,-1.66488 -0.644098,0.24581 -1.205888,0.929701 -1.356143,1.214354 -0.01368,-0.226168 0.178461,-0.847465 0.09395,-1.149135 -0.432458,0.359299 -0.907945,1.063591 -1.03797,1.345011 -0.01552,-0.221203 0.175754,-0.837548 0.0938,-1.129476 -0.308897,0.256587 -0.750388,0.864386 -0.897141,1.083767 -0.02083,-0.198101 0.164115,-0.787407 0.0938,-1.038112 -0.378804,0.314784 -0.844132,0.977338 -0.985759,1.233987 H 10.224405 C 8.7662394,15.224561 6.5732527,15.941204 6.1716544,12.6931 5.6628407,8.5777843 7.6941655,10.612793 9.9166595,11.400386 c -0.072366,0.253368 -0.3774632,1.025636 -0.3703053,1.44942 0.5140488,-0.177947 1.1019668,-0.841224 1.2935528,-1.064223 -0.05642,0.239005 -0.340145,0.96764 -0.333833,1.338451 0.521919,-0.180421 1.10323,-0.850813 1.29352,-1.077274 0.03879,0.01145 0.08165,0.02892 0.119957,0.03919 -0.04365,0.132461 -0.348624,0.706592 -0.385933,0.868361 0.822078,0.03392 1.555775,-0.59984 1.773369,-0.868361 2.485654,-1.609594 4.264118,-4.967046 4.642166,-6.8163388 C 18.039313,4.2671626 17.72573,3.6593603 17.00506,3.4088713 16.539485,3.247096 13.448656,3.2075309 10.443491,3.2585179 c -0.8499128,0 -2.1415955,-2.35063269 -3.0930276,-3.21231383 -0.012179,0 -0.021446,-0.0034931 -0.031301,0 z M 11.987708,5.8178633 C 15.202231,5.8123128 14.0732,12.75477 9.4162336,6.8951515 10.464743,6.1183907 11.320481,5.8191944 11.987708,5.8178633 Z" style="fill:#FF6C2C;fill-opacity:1;stroke:none;stroke-width:0.18674102" inkscape:export-filename="" inkscape:export-xdpi="90" inkscape:export-ydpi="90" /> </svg></span> |
| 159 | <span style="margin-top: 6px; font-size: 12px;">{{ lang.t("Generated By Hosting Provider") }}</span> |
| 160 | </div> |
| 161 | |
| 162 | </div> |
| 163 | </div> |
| 164 | </div> |
| 165 | |
| 166 | </div> |