mirror of
				https://github.com/dgtlmoon/changedetection.io.git
				synced 2025-10-31 14:47:21 +00:00 
			
		
		
		
	Compare commits
	
		
			1 Commits
		
	
	
		
			browserste
			...
			checkbox-c
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | b1dd71f7e7 | 
| @@ -1186,6 +1186,36 @@ def changedetection_app(config=None, datastore_o=None): | |||||||
|         flash("{} watches are queued for rechecking.".format(i)) |         flash("{} watches are queued for rechecking.".format(i)) | ||||||
|         return redirect(url_for('index', tag=tag)) |         return redirect(url_for('index', tag=tag)) | ||||||
|  |  | ||||||
|  |     @app.route("/form/checkbox-operations", methods=['POST']) | ||||||
|  |     @login_required | ||||||
|  |     def form_watch_list_checkbox_operations(): | ||||||
|  |         op = request.form['op'] | ||||||
|  |         uuids = request.form.getlist('uuids') | ||||||
|  |  | ||||||
|  |         if (op == 'delete'): | ||||||
|  |             for uuid in uuids: | ||||||
|  |                 uuid = uuid.strip() | ||||||
|  |                 if datastore.data['watching'].get(uuid): | ||||||
|  |                     datastore.delete(uuid.strip()) | ||||||
|  |             flash("{} watches deleted".format(len(uuids))) | ||||||
|  |  | ||||||
|  |         if (op == 'pause'): | ||||||
|  |             for uuid in uuids: | ||||||
|  |                 uuid = uuid.strip() | ||||||
|  |                 if datastore.data['watching'].get(uuid): | ||||||
|  |                     datastore.data['watching'][uuid.strip()]['paused'] = True | ||||||
|  |  | ||||||
|  |             flash("{} watches paused".format(len(uuids))) | ||||||
|  |  | ||||||
|  |         if (op == 'unpause'): | ||||||
|  |             for uuid in uuids: | ||||||
|  |                 uuid = uuid.strip() | ||||||
|  |                 if datastore.data['watching'].get(uuid): | ||||||
|  |                     datastore.data['watching'][uuid.strip()]['paused'] = False | ||||||
|  |             flash("{} watches unpaused".format(len(uuids))) | ||||||
|  |  | ||||||
|  |         return redirect(url_for('index')) | ||||||
|  |  | ||||||
|     @app.route("/api/share-url", methods=['GET']) |     @app.route("/api/share-url", methods=['GET']) | ||||||
|     @login_required |     @login_required | ||||||
|     def form_share_put_watch(): |     def form_share_put_watch(): | ||||||
|   | |||||||
| @@ -22,5 +22,18 @@ $(function () { | |||||||
|       }); |       }); | ||||||
|   }); |   }); | ||||||
|  |  | ||||||
|  |     // checkboxes - check all | ||||||
|  |     $("#check-all").click(function (e) { | ||||||
|  |         $('input[type=checkbox]').not(this).prop('checked', this.checked); | ||||||
|  |     }); | ||||||
|  |     // checkboxes - show/hide buttons | ||||||
|  |     $("input[type=checkbox]").click(function (e) { | ||||||
|  |         if ($('input[type=checkbox]:checked').length) { | ||||||
|  |             $('#checkbox-operations').slideDown(); | ||||||
|  |         } else { | ||||||
|  |             $('#checkbox-operations').slideUp(); | ||||||
|  |         } | ||||||
|  |     }); | ||||||
|  |  | ||||||
| }); | }); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -555,3 +555,13 @@ ul { | |||||||
|   .snapshot-age.error { |   .snapshot-age.error { | ||||||
|     background-color: #ff0000; |     background-color: #ff0000; | ||||||
|     color: #fff; } |     color: #fff; } | ||||||
|  |  | ||||||
|  | #checkbox-operations { | ||||||
|  |   background: rgba(0, 0, 0, 0.05); | ||||||
|  |   padding: 1em; | ||||||
|  |   border-radius: 10px; | ||||||
|  |   margin-bottom: 1em; | ||||||
|  |   display: none; } | ||||||
|  |  | ||||||
|  | .checkbox-uuid > * { | ||||||
|  |   vertical-align: middle; } | ||||||
|   | |||||||
| @@ -774,3 +774,15 @@ ul { | |||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | #checkbox-operations { | ||||||
|  |   background: rgba(0, 0, 0, 0.05); | ||||||
|  |   padding: 1em; | ||||||
|  |   border-radius: 10px; | ||||||
|  |   margin-bottom: 1em; | ||||||
|  |   display: none; | ||||||
|  | } | ||||||
|  | .checkbox-uuid { | ||||||
|  |   > * { | ||||||
|  |     vertical-align: middle; | ||||||
|  |   } | ||||||
|  | } | ||||||
|   | |||||||
| @@ -24,6 +24,14 @@ | |||||||
|         </fieldset> |         </fieldset> | ||||||
|         <span style="color:#eee; font-size: 80%;"><img style="height: 1em;display:inline-block;" src="{{url_for('static_content', group='images', filename='spread-white.svg')}}" /> Tip: You can also add 'shared' watches. <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Sharing-a-Watch">More info</a></a></span> |         <span style="color:#eee; font-size: 80%;"><img style="height: 1em;display:inline-block;" src="{{url_for('static_content', group='images', filename='spread-white.svg')}}" /> Tip: You can also add 'shared' watches. <a href="https://github.com/dgtlmoon/changedetection.io/wiki/Sharing-a-Watch">More info</a></a></span> | ||||||
|     </form> |     </form> | ||||||
|  |  | ||||||
|  |     <form class="pure-form" action="{{ url_for('form_watch_list_checkbox_operations') }}" method="POST" id="watch-list-form"> | ||||||
|  |     <input type="hidden" name="csrf_token" value="{{ csrf_token() }}"/> | ||||||
|  |     <div id="checkbox-operations"> | ||||||
|  |         <button class="pure-button button-secondary button-xsmall" style="background: #dd4242; font-size: 70%" name="op" value="delete">Delete</button> | ||||||
|  |         <button class="pure-button button-secondary button-xsmall" style="font-size: 70%"  name="op" value="pause">Pause</button> | ||||||
|  |         <button class="pure-button button-secondary button-xsmall" style="font-size: 70%"  name="op" value="unpause">UnPause</button> | ||||||
|  |     </div> | ||||||
|     <div> |     <div> | ||||||
|         <a href="{{url_for('index')}}" class="pure-button button-tag {{'active' if not active_tag }}">All</a> |         <a href="{{url_for('index')}}" class="pure-button button-tag {{'active' if not active_tag }}">All</a> | ||||||
|         {% for tag in tags %} |         {% for tag in tags %} | ||||||
| @@ -41,7 +49,7 @@ | |||||||
|         <table class="pure-table pure-table-striped watch-table"> |         <table class="pure-table pure-table-striped watch-table"> | ||||||
|             <thead> |             <thead> | ||||||
|             <tr> |             <tr> | ||||||
|                 <th>#</th> |                 <th><input style="vertical-align: middle" type="checkbox" id="check-all"/> #</th> | ||||||
|                 <th></th> |                 <th></th> | ||||||
|                 {% set link_order = "desc" if sort_order else "asc" %} |                 {% set link_order = "desc" if sort_order else "asc" %} | ||||||
|                 {% set arrow_span = "" %} |                 {% set arrow_span = "" %} | ||||||
| @@ -66,7 +74,7 @@ | |||||||
|                 {% if watch.paused is defined and watch.paused != False %}paused{% endif %} |                 {% if watch.paused is defined and watch.paused != False %}paused{% endif %} | ||||||
|                 {% if watch.newest_history_key| int > watch.last_viewed and watch.history_n>=2 %}unviewed{% endif %} |                 {% if watch.newest_history_key| int > watch.last_viewed and watch.history_n>=2 %}unviewed{% endif %} | ||||||
|                 {% if watch.uuid in queued_uuids %}queued{% endif %}"> |                 {% if watch.uuid in queued_uuids %}queued{% endif %}"> | ||||||
|                 <td class="inline">{{ loop.index }}</td> |                 <td class="inline checkbox-uuid" ><input name="uuids"  type="checkbox" value="{{ watch.uuid}} "/> <span>{{ loop.index }}</span></td> | ||||||
|                 <td class="inline watch-controls"> |                 <td class="inline watch-controls"> | ||||||
|                     <a class="state-{{'on' if watch.paused }}" href="{{url_for('index', op='pause', uuid=watch.uuid, tag=active_tag)}}"><img src="{{url_for('static_content', group='images', filename='pause.svg')}}" alt="Pause checks" title="Pause checks"/></a> |                     <a class="state-{{'on' if watch.paused }}" href="{{url_for('index', op='pause', uuid=watch.uuid, tag=active_tag)}}"><img src="{{url_for('static_content', group='images', filename='pause.svg')}}" alt="Pause checks" title="Pause checks"/></a> | ||||||
|                     <a class="state-{{'on' if watch.notification_muted}}" href="{{url_for('index', op='mute', uuid=watch.uuid, tag=active_tag)}}"><img src="{{url_for('static_content', group='images', filename='bell-off.svg')}}" alt="Mute notifications" title="Mute notifications"/></a> |                     <a class="state-{{'on' if watch.notification_muted}}" href="{{url_for('index', op='mute', uuid=watch.uuid, tag=active_tag)}}"><img src="{{url_for('static_content', group='images', filename='bell-off.svg')}}" alt="Mute notifications" title="Mute notifications"/></a> | ||||||
| @@ -129,5 +137,6 @@ | |||||||
|          #} |          #} | ||||||
|  |  | ||||||
|     </div> |     </div> | ||||||
|  |     </form> | ||||||
| </div> | </div> | ||||||
| {% endblock %} | {% endblock %} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user