Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gewählter Zeitraum wird bei Switch in anderen Tab vergessen #88

Open
oioix opened this issue Apr 1, 2022 · 14 comments
Open

Gewählter Zeitraum wird bei Switch in anderen Tab vergessen #88

oioix opened this issue Apr 1, 2022 · 14 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@oioix
Copy link

oioix commented Apr 1, 2022

Cooles Addon
Schön wäre es, wenn der individuell gewählte Zeitraum bei Switch in einen anderen Reiter (z.B. von Statistik zu Seitenaufrufe) erhalten bliebe.
LG, Chris

(enhancement)

@AndiLeni
Copy link
Owner

AndiLeni commented Apr 2, 2022

Die Tabs für die Navigation zwischen den Seiten wird von Redaxo selbst generiert.
Ich bin mir nicht sicher, ob ich da einen Parameter für den Filter mitgeben kann.

Ich lasse das Issue offen und bin natürlich auch über Pull requests glücklich :-)

@AndiLeni AndiLeni added the enhancement New feature or request label Apr 2, 2022
@oioix
Copy link
Author

oioix commented Apr 2, 2022

Hi Andreas, verstehe ;-)

Da gibt es sicher einen ExtensionPoint, wo man das eingestellte Datum (aus der Url extrahiert z.B. "&date_start=2022-02-15&date_end=2022-04-02") anhängen könnte.

Fragt sich nur welcher das ist.
Evtl. geht es auch mit JS.

@iceman-fx
Copy link

Mache es dir einfach und speichere die Auswahl in der session.
Dann kannst die dies über alle Seiten hinweg nutzen.

@AndiLeni
Copy link
Owner

AndiLeni commented Apr 2, 2022

Das ist eine sehr gute Idee :)

@oioix
Copy link
Author

oioix commented Apr 2, 2022

Ansonsten... das JS macht den Job, solange man nur zwischen den drei relevanten Tabs wechselt:

`// --------------------------------------------------------------------------------------------------------------------------
// -- START DOCUMENT READY --------------------------------------------------------------------------------------------------
$(document).ready(function() {

// -------------------------------------------------------------------------------------
// rex addon statistics -> attach filtered date to addon tab links
// -------------------------------------------------------------------------------------
var header = $('.rex-page-nav').find('ul').find('a');

var linkStatsElem	= '';
var linkStatsVal	= '';

var linkPagesElem	= '';
var linkPagesVal	= '';

var linkRefererElem	= '';
var linkRefererVal	= '';

header.each(function(){
	var thisLink = $(this).attr('href');
	
	var inStrStats	= thisLink.includes('statistics/stats');
	var inStrPages	= thisLink.includes('statistics/pages');
	var inStrReferer = thisLink.includes('statistics/referer');
	
	if(inStrStats) {
		linkStatsElem = $(this);
		linkStatsVal = thisLink;
	}
	if(inStrPages) {
		linkPagesElem = $(this);
		linkPagesVal = thisLink;
	}
	if(inStrReferer) {
		linkRefererElem = $(this);
		linkRefererVal = thisLink;
	}
});

var filterStartDateElem = $('#statistics_datefilter_start');
var filterEndDateElem	= $('#statistics_datefilter_end');

// get current values
function getStatFilterDates(){
	var filterStartDate = filterStartDateElem.val();
	var filterEndDate	= filterEndDateElem.val();

	if(filterStartDate && filterEndDate) {
		
		var attachDateVal = '&date_start='+filterStartDate+'&date_end='+filterEndDate;
		
		linkStatsElem.attr('href',linkStatsVal+attachDateVal);
		linkPagesElem.attr('href',linkStatsVal+attachDateVal);
		linkRefererElem.attr('href',linkStatsVal+attachDateVal);
	}
}

// run on pageload
getStatFilterDates();

// run on change
filterStartDateElem.change(function(){
	getStatFilterDates();
});
filterEndDateElem.change(function(){
	getStatFilterDates();
});

});`

@oioix
Copy link
Author

oioix commented Apr 2, 2022

Es liest die date-inputs aus. Wenn du die beiden Dati in der Session speicherst und die inputs wieder aus der Session befüllst, funktioniert es auch bei wiederkehr nach einem Wechsel zu anderen Seiten.

In jedem Fall hängt es die nötigen Parameter an die Links an.

@oioix
Copy link
Author

oioix commented Apr 2, 2022

Ups, ich war zu vorschnell. Ist noch ein Bug drin.

Sofern interesse besteht, mach ich es aber noch gerne fertig.

@oioix
Copy link
Author

oioix commented Apr 2, 2022

War nur ein Flüchtigkeitsfehler.

hier das Update nun auch mit api + media:

`
// --------------------------------------------------------------------------------------------------------------------------
// -- START DOCUMENT READY --------------------------------------------------------------------------------------------------
$(document).ready(function() {

//alert('Swissknife script for Redaxo backend is available')


// -------------------------------------------------------------------------------------
// rex addon statistics -> attach filtered date to addon tab links
// -------------------------------------------------------------------------------------
var header = $('.rex-page-nav').find('ul').find('a');

var linkStatsElem	= '';
var linkStatsVal	= '';

var linkPagesElem	= '';
var linkPagesVal	= '';

var linkRefererElem	= '';
var linkRefererVal	= '';

var linkApiElem		= '';
var linkApiVal		= '';

var linkMediaElem	= '';
var linkMediaVal	= '';

header.each(function(){
	var thisLink = $(this).attr('href');
	
	var inStrStats	= thisLink.includes('statistics/stats');
	var inStrPages	= thisLink.includes('statistics/pages');
	var inStrReferer = thisLink.includes('statistics/referer');
	var inStrApi 	= thisLink.includes('statistics/api');
	var inStrMedia	= thisLink.includes('statistics/media');
	
	if(inStrStats) {
		linkStatsElem = $(this);
		linkStatsVal = thisLink;
	}
	if(inStrPages) {
		linkPagesElem = $(this);
		linkPagesVal = thisLink;
	}
	if(inStrReferer) {
		linkRefererElem = $(this);
		linkRefererVal = thisLink;
	}
	if(inStrApi) {
		linkApiElem = $(this);
		linkApiVal = thisLink;
	}
	if(inStrMedia) {
		linkMediaElem = $(this);
		linkMediaVal = thisLink;
	}
});

var filterStartDateElem = $('#statistics_datefilter_start');
var filterEndDateElem	= $('#statistics_datefilter_end');

// get current values
function getStatFilterDates(){
	var filterStartDate = filterStartDateElem.val();
	var filterEndDate	= filterEndDateElem.val();

	if(filterStartDate && filterEndDate) {
		
		var attachDateVal = '&date_start='+filterStartDate+'&date_end='+filterEndDate;
		
		linkStatsElem.attr('href',linkStatsVal+attachDateVal);
		linkPagesElem.attr('href',linkPagesVal+attachDateVal);
		linkRefererElem.attr('href',linkRefererVal+attachDateVal);
		linkApiElem.attr('href',linkApiVal+attachDateVal);
		linkMediaElem.attr('href',linkMediaVal+attachDateVal);
	}
}

// run on pageload
getStatFilterDates();

// run on change
filterStartDateElem.change(function(){
	getStatFilterDates();
});
filterEndDateElem.change(function(){
	getStatFilterDates();
});

});
`

@alxndr-w
Copy link
Collaborator

@oioix kannst du dazu einen PR erstellen?

@alxndr-w alxndr-w added the help wanted Extra attention is needed label Nov 19, 2024
@oioix
Copy link
Author

oioix commented Nov 20, 2024

@oioix kannst du dazu einen PR erstellen?

Gerade gemacht. In Datei: "statistics.js" eingefügt.

Hab leider im comment versehendlich das falsche Issue "#92" statt "#88" angegeben.
Das steht nun fälschlicherweise: "
JS-solution (see "Zeitraum filtern" auch für Diagramme #92)"

Also bitte den comment einfach ignorieren.

@alxndr-w
Copy link
Collaborator

@oioix hier ist kein PR.

oioix added a commit to oioix/statistics that referenced this issue Nov 24, 2024
@oioix
Copy link
Author

oioix commented Nov 24, 2024

Ich weiß nicht, was ich da jedes mal falsch mache. Jetzt aber...

Screenshot 2024-11-24 | 15 03 14

@alxndr-w
Copy link
Collaborator

Evtl. hast du den PR in deinen lokalen Fork gepackt statt hier. Das kann man beim PR-Erstellen auswählen. Danke schonmal!

@oioix
Copy link
Author

oioix commented Nov 24, 2024

Ja, vermutlich. Ist mir das letzte mal auch schon passiert. Aber jetzt passt es ja.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants