AEM provides a OOTB functionality to Activate Later. Following the scenario where confusion is happening
User Schedules a page for Activate Later (suppose 5 mins after current time). It internally creates a page version and waits for selected time.
User modifies some content in the page. In /siteadmin console, modified timestamp is updated and modified icon is changed to "Blue".
Now Schedule Later workflow publishes the version created in step 1 to publish instance (Changes done in step 2 are not published, which is fine and is expected behavior), Replicate API creates another version while replicating in case of content change.
After the page is published /siteadmin console shows "Green" icon status under published column. But "Blue" icon under modified column is removed.
Now this creates a bad user experience (Not sure if this is a bug in AEM, the status under modified column should have been Blue, which would give feedback to author that currently page is in modified state and published version is older). My question is, is there a way to verify which version of page from author instance is currently present in publish instance (So that at least we can be sure that modified version is not yet published). Or control the modified column in /siteadmin console.
AEM has a so called Timewarp feature, this allows you to see the publishing activities for a page.
Related
I am currently looking into helping someone using Wordpress and Google Sheets. Essentially, they use Google Sheets data as a backend and Wordpress will display that as a table in a post.
The only issue is this data is refreshed every five mins by an add-on they are using. However, it would be best if the data was updated real time. I am a full stack developer, but not overly familiar with Word Press, is there a way to 1) get the table data to update in real time? Or 2) have the table data loaded on page refresh, like a typical UI to backend service call would?
You can use the wp_update_post() function or the REST API at any time to update the content of any page, or if the table is stored in an option, use update_option().
Then, it's just a matter of whether you want to scan for changes on the server side, or can send a webhook of some kind when the row is updated.
I can think of a few options.
Set up a Cron Job at the server level to check the google sheet for changes, and use either function above to update the table. I don't really recommend that for this because it won't be "live" updates, and may run more (or less) often than it needs to.
See if the "addon" can post the updated row to the WordPress REST api (or custom function handler)
Use one of the Sheets Triggers (onEdit?) in the sheet's Apps Script to fire a remote request to your site with the updated row's value (or the whole sheet?) and update it via the REST API or custom function handler with wp_update_post or update_option.
Use a third party "webhook tool" to hook the Sheet to your site. A tool like Zapier or IFTTT comes to mind.
I'd probably lean towards number 3 as it lets you tie straight into the Google Sheet with Apps Script, and POST just the updated row to your WordPress' site via the API, which provides the following benefits:
• Updates your site "live", as soon as an update is made to the sheet
• Doesn't require server-side set up
• Low amount of data transmitted over the wire
• No needless checks/requests
• No other third-party tools required
I have a fully functional and working code (written in C#) which purpose is to track some hits to the specified GA property. This code has been tested and still works successfully. It adds some predefined dimensions (like App Version) to each hit and a several custom metrics to a certain hit types (like event with a certain Event Action).
So far so good everything works flawlessly when taking into account the first property to which these hits are being sent. Also everything is fine when I set up a brand new GA property and track my hits to it - that is, I'm able to see events in Realtime reports, and events show up in custom reports after a while so that I can see my custom metrics.
The issue is that when I try to send absolutely the same hits to the existing property which had been created and configured ages ago - there is no both dimensions (even predefined) and custom metrics in my custom reports. I see these events in realtime and behavior reports, and I'm even able to create a custom report against events count - but that's it. I'm able to use for example Day of the month as a primary dimension, but when I try to use App Version as a dimension or my custom metrics as report metrics - it says "There is no data for this view.".
I've already tried everything I could, have read almost every post about custom definitions in Google and viewed almost each related SO question and answer - still with no luck.
We use measurement protocol
There is a correct User Agent being sent with each hit
17 days has passed since my first attempt to track these hits with existing property
There is no filters and segments at all
There is only one view
For me it looks like a property misconfiguration, but I've inspected each configuration page (I have all possible rights granted) and have not found anything related.
Will appreciate any help with this issue.
UPD: The hit itself (with the sensitive data replaced):
t=event&ec=session&ea=connection_end&el=b225d53a-6bb2-8021-f7b5-ae7004ae0a00&cm1=174960&cm2=1751494&cm3=479033&tid=UA-XXXXXXX-X&cid=4119e77f-be87-4530-04d3-33882f8eea77&v=1&av=XX.XX.99.555&an=my-awesome-app&aid=app.awesome.my
UPD: Here is what I'm trying to achieve (screenshot was made at the test property, where everything works like a charm):
I need to configure the display history for the requester, in particular, the date of the last change should be displayed not in the form of how many days have passed since the last change, but simply the date of the last change. How can I settle this?
Screenshot
There will be version service or version service object which will be fetching all those details in script. You can modify that template to show that details.
I am using classic asp for a web application. I am running the web application on internet explorer.
I had developed few reports related to sales data. All the sales report are linked to Sales Dashboard. Every report has some selection criteria like customer selection date period selection product group selection and other few.
Now the problem which I am facing.
I open a total sales report for the entire year which takes almost 15 minutes to load on screen. while the report is executing if I try to open any other from the sales dashboard the page with selection criteria will appear after the first report is completely executed. If I copy the link location for the second report and open it in new window of internet explorer it will open normally.
I am not able to trace the problem did anyone had face the same problem.
First, I agree with this comment posted under the question:
IIS/ASP only allows one concurrent request per session. This is why the second request does not happen until after the first one completes. If you open a new browser instance or a different browser then this is treated as a different session.
Second, if all that is being asked here is whether other people have similar issues or not, then the answer is yes, due to what johna said in the comment.
If you're looking for a way to get around that for yourself, the way described in the comment (open a new browser instance or a different browser) will work.
However, if you're after a way to bypass the 15 minute wait time entirely, give some though to preparing the data before the report is called. What I mean by that is either schedule the report to run after close of business each day and store the relevant HTML or data separately, and/or provide a button to prepare the report based on current data which can be run whenever the user wants.
I have a Meteor application which displays a calendar (using fullcalendar.io), and subscribes to bookings within a given date range. The app uses FlowRouter and grabs the date from the URL, and then uses this to subscribe to the bookings (URL date through to URL date + 14 days). This all works fine and I can skip through the days in the calendar, loading events for each day with no refresh as they are coming from minimongo. What I would like to do is to refresh this subscription in the background when the user switches date. This is possible using flow router e.g.:
FlowRouter.go('/diary/2017-04-11')
or by setting the subscription date in a Session / Reactive variable.
This will load the events from 2017-04-11 to 2017-04-25. The issue is that as the entire subscription is recreated there is a slight delay whilst it is loading. What I am trying to achieve is a 'moving window' - for example, if I am subscribed to events from 2017-04-10 and I change the publication to 2017-04-11, then only the 1 extra day gets loaded, rather than all data getting removed and replaced. This would ensure that I am able to skip through the days of the calendar without any load times. If the user selected a date > 14 days in the future manually then they would see the load time, this is perfectly acceptable.
it sounds like your subscriptions are tied to the template that's loaded with each route change. then, when you switch routes, the template is reloaded and the subscription along with it.
there are a couple options for cache managers, which would allow you to keep a sub active across templates.
e.g. https://github.com/kadirahq/subs-manager
note that, while this will allow your client to keep subs active as i've described, it will probably work in an "additive" function. so it won't by itself solve your moving window problem, but it will pick up new items from the publisher as you navigate.
second note: with this package, you're not limited to a single manager. i've found that it works best if you keep one manager / sub. once i started loading multiple subs to a manager, it started behaving strangely.