tpr

Module
AdminOnSteroids

855 posts in this topic

4 minutes ago, tpr said:

For ckeditor there is already a Maximize plugin in aos (ckeaddons).

i am quite busy those days so i missed that ;)

6 minutes ago, tpr said:

As for the other fields the biggest issue is the button placement, or finding another solution to trigger.

yeah i was not sure about that as well. i thought of placing it beside the open/close toggle of the field label.

Share this post


Link to post
Share on other sites
11 hours ago, tpr said:

For ckeditor there is already a Maximize plugin in aos (ckeaddons).

Hi @tpr Should ctrl+S/command+S trigger the save action in the maximized view as well? It does not work for me on Mac/Chrome.

Share this post


Link to post
Share on other sites

It seems that the Maximize plugin replaces the DOM entirely and there's no Save button at all. My only idea is to trigger a click on the pushed Maximize button which works, though the transition to the non-maximized state is visible for a few milliseconds.

1 person likes this

Share this post


Link to post
Share on other sites
5 minutes ago, tpr said:

...non-maximized state is visible for a few milliseconds

Better than nothing :) It would be awesome if you could add it.

Share this post


Link to post
Share on other sites

Thanks! Save works but it cannot re-maximize it afterwards. At first I got a PW error notification which said something like: "body field could not be found" (I do not have the exact message) but after that it just fails without any error in sight.

Share this post


Link to post
Share on other sites

No idea what is happening there :) No errors here on latest PW dev and latest AOS, default and Reno themes. Cache?

Edit: have you added CKEditor buttons to the body field before AOS? Sometimes that can cause JS errors, re-saving the field usually helps.

1 person likes this

Share this post


Link to post
Share on other sites
8 hours ago, tpr said:

Edit: have you added CKEditor buttons to the body field before AOS? Sometimes that can cause JS errors, re-saving the field usually helps.

Thanks for the tip, sadly it did not work :( Anyway, I only use/used AOS to mod the editor.

I cleared the cache, tried it in Firefox too, and it does save the page so it is the new JS at work, it just cannot do maximize at the end. No JS error in the console either. Worst kinda issue...

Share this post


Link to post
Share on other sites

I may not understand it correctly but it sounds that the page you are editing is not reloaded after ctrl+s. On reload everything should start clean so no idea how this could fail.

Anyway I committed the update (no version change), plus made ctrl+s work in cases when the page is opened in a modal, eg. when using FEEL or perhaps the bult-in front-end editor.

Share this post


Link to post
Share on other sites

I updated to AOS 1.3.6, nothing has changed (as expected). This is what happens:

Edit: screenshot was removed because of privacy concerns.

Share this post


Link to post
Share on other sites

Thanks, but it seems OK to me, at least I can't see the issue on the gif. So at the end of the video if you click on the Maximize button nothing happens? My best guess is that you expect the editor to re-maximize automatically which is not the case.

I've installed SystemNotifications module and disabled all other submodules of AOS but it's still working as expected here (on "expected" I mean what I expect :)).

If you think it's still an issue and could provide a login to me to check, that would be great (or install a new PW instance for me to check, it's a few minutes using Soma’s Online Installer)

Share this post


Link to post
Share on other sites
13 minutes ago, tpr said:

My best guess is that you expect the editor to re-maximize automatically which is not the case.

Yes, I do. Oh well, then it was just a misunderstanding.

So you mean it is not possible to re-maximize it automatically? The idea here is to work in maximized mode only, not being distracted (too much) by periodic saves.

Share this post


Link to post
Share on other sites

AOS triggers the save button only, what you need would be ajax save which is harder to implement. Maybe I'll check it some day though.

Of course I could find a way to Maximize after ctrl+s but I'm not sure this won't be a nuissance.

1 person likes this

Share this post


Link to post
Share on other sites
4 minutes ago, tpr said:

I'm not sure this won't be a nuissance.

Not sure either, however, the feature in its current state could be "improved" that way. After all, now we have to do it manually. Maybe an option in the Settings for those who want it to "stay" maximized?

Share this post


Link to post
Share on other sites

I think the time I could invest in this workaround could be spent on adding ajax save to ckeditor :)

1 person likes this

Share this post


Link to post
Share on other sites

Hi @tpr

I have found one small issue with CKEditor plugins, didn't find any mentioning in this threed, but maybe you are alreade aware about it. 

If field is just in a page all additional plugins are loaded and initilated, but if field is inside of matrix/repeater field with ajax loading. After opening of collapsed item CKEditor in it is initializing just with plugins set in field settings.

1 person likes this

Share this post


Link to post
Share on other sites

Thanks, got it sorted out, now it works with Repeaters and ajax-loaded fields, need to check with RepeaterMatrix too. Will update the module later if all goes well.

aos-ckeaddons-repeater-ajax.gif.e3a70bc22f25a74ab4e18fb55c982e49.gif

Share this post


Link to post
Share on other sites

Sneak preview of draggable column splitter when using AOS admin columns:

aos-column-splitter.gif.3017d341279e382c69f3fc35b332aabc.gif

6 people like this

Share this post


Link to post
Share on other sites

Both updates are available in v137.

Share this post


Link to post
Share on other sites
3 hours ago, tpr said:

Sneak preview of draggable column splitter when using AOS admin columns:

Does it remember the widths on a refresh or on a new session?

Share this post


Link to post
Share on other sites

Uses localStorage to remember position.

Share this post


Link to post
Share on other sites

Draggable column width looks awesome, but at the moment I am getting this:

58d40f8b552f7_ScreenShot2017-03-23at11_09_24AM.png.bfa9150345ad20a63ff7309010740887.png

 

Share this post


Link to post
Share on other sites

Yep, sorry for that, should be fixed in v138.

1 person likes this

Share this post


Link to post
Share on other sites
17 minutes ago, tpr said:

Yep, sorry for that, should be fixed in v138.

Thanks, it works now, but it no longer honors the width setting defined in the template. I have it set to 50%, but now it starts about 70 / 30. It might also be nice if it were optional - in some cases it will be a great addition, but sometime it's just a superfluous bit of UI. Please don't take that the wrong way - it really will be awesome in many cases.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By blynx
      Hej,
      just finished the first working version of my photoswipe bundle. https://github.com/blynx/MarkupProcesswirePhotoswipe
      As always any feedback is highly appreciated
      Modules directory: http://modules.processwire.com/modules/markup-processwire-photoswipe
      .zip download: https://github.com/blynx/MarkupProcesswirePhotoswipe/archive/master.zip
      You can add a photoswipe enabled thumbnail gallery / lightbox to your site like this. Just pass an image field to the renderGallery method:
      <?php $pwpswp = $modules->get('Pwpswp'); echo $pwpswp->renderGallery($page->nicePictures); Options are provided like so:
      <?php $galleryOptions = [ 'imageResizerOptions' => [ 'size' => '500x500' 'quality' => 70, 'upscaling' => false, 'cropping' => false ], 'loresResizerOptions' => [ 'size' => '500x500' 'quality' => 20, 'upscaling' => false, 'cropping' => false ], 'pswpOptions' => (object) [ 'shareEl' => false, 'indexIndicatorSep' => ' von ', 'closeOnScroll' => false ] ]; echo $pswp->renderGallery($page->images, $galleryOptions); More info about all that is in the readme: https://github.com/blynx/MarkupProcesswirePhotoswipe
      It is possible to customize pretty much anything by providing your own templates and scripts.
      What do you think? Any ideas, bugs, critique, requests?
      cheers
      Steffen
    • By alexcapes
      Hi,
      I've been invited by Apple to use their 'News' service for a publication in the UK. https://www.apple.com/uk/news/
      A number of CMSs already have plugins to publish content via the API, however Processwire is not one (yet!)
      https://newsresources.apple.com/en/faq/66346243
      It's slightly beyond my technical abilities but would be very interested in anyone that is willing to look at developing a Processwire Module.
      (for reference here is the Apple News API documentation)
      Update: Chapter Three have created a PHP Apple News library here https://github.com/chapter-three/AppleNewsAPI
    • By flydev
      OAuth2Login for ProcessWire
      A Module which give you ability to login an existing user using your favorite thrid-party OAuth2 provider (i.e. Facebook, GitHub, Google, LinkedIn, etc.)..
      You can login from the backend to the backend directly or render a form on the frontend and redirect the user to a choosen page.
      Built on top of ThePhpLeague OAuth2-Client lib.
      Registration is not handled by this module but planned.
       
      Howto Install
      Install the module following this procedure:
       - http://modules.processwire.com/modules/oauth2-login/
       - https://github.com/flydev-fr/OAuth2Login
      Next step, in order to use a provider, you need to use Composer to install each provider
      ie: to install Google, open a terminal, go to your root directory of pw and type the following command-line: composer require league/oauth2-google
      Tested providers/packages :
          Google :  league/oauth2-google     Facebook: league/oauth2-facebook     Github: league/oauth2-github     LinkedIn: league/oauth2-linkedin
      More third-party providers are available there. You should be able to add a provider by simply adding it to the JSON config file.

      Howto Use It
      First (and for testing purpose), you should create a new user in ProcessWire that reflect your real OAuth2 account information. The important informations are, Last Name, First Name and Email. The module will compare existing users by firstname, lastname and email; If the user match the informations, then he is logged in.
      ie, if my Google fullname is John Wick, then in ProcessWire, I create a new user  Wick-John  with email  johnwick@mydomain.com
      Next step, go to your favorite provider and create an app in order to get the ClientId and ClientSecret keys. Ask on the forum if you have difficulties getting there.
      Once you got the keys for a provider, just paste it into the module settings and save it. One or more button should appear bellow the standard login form.
      The final step is to make your JSON configuration file.
      In this sample, the JSON config include all tested providers, you can of course edit it to suit your needs :
      { "providers": { "google": { "className": "Google", "packageName": "league/oauth2-google", "helpUrl": "https://console.developers.google.com/apis/credentials" }, "facebook": { "className": "Facebook", "packageName": "league/oauth2-facebook", "helpUrl": "https://developers.facebook.com/apps/", "options": { "graphApiVersion": "v2.10", "scope": "email" } }, "github": { "className": "Github", "packageName": "league/oauth2-github", "helpUrl": "https://github.com/settings/developers", "options": { "scope": "user:email" } }, "linkedin": { "className": "LinkedIn", "packageName": "league/oauth2-linkedin", "helpUrl": "https://www.linkedin.com/secure/developer" } } }  
      Backend Usage
      In ready.php, call the module :
      if($page->template == 'admin') { $oauth2mod = $modules->get('Oauth2Login'); if($oauth2mod) $oauth2mod->hookBackend(); }  
      Frontend Usage
      Small note: At this moment the render method is pretty simple. It output a InputfieldForm with InputfieldSubmit(s) into wrapped in a ul:li tag. Feedbacks and ideas welcome!
      For the following example, I created a page login and a template login which contain the following code :
      <?php namespace ProcessWire; if(!$user->isLoggedin()) { $options = array( 'buttonClass' => 'my_button_class', 'buttonValue' => 'Login with {provider}', // {{provider}} keyword 'prependMarkup' => '<div class="wrapper">', 'appendMarkup' => '</div>' ); $redirectUri = str_lreplace('//', '/', $config->urls->httpRoot . $page->url); $content = $modules->get('Oauth2Login')->config( array( 'redirect_uri' => $redirectUri, 'success_uri' => $page->url ) )->render($options); }

       
      Screenshot
       



    • By psy
      ProcessWire DropboxAPI on GitHub: https://github.com/clipmagic/DropboxAPI
       
      This module is a wrapper for Kunal Varma's Dropbox PHP SDK https://github.com/kunalvarma05/dropbox-php-sdk
      It was created to perform a specific function for a client, ie upload PDF files on a PW website to a specific Dropbox account folder.
      The PDF files, created using @Wanze's excellent PagesToPdf module using the WirePDF functions, are generated from Formbuilder forms completed by front-end site visitors.  Works a treat!
      There's more that could be done to allow ProcessWire to take advantage of all the features of the SDK, eg downloads, multiple Dropbox accounts, etc. You are welcome to request changes and/or fork the GitHub project to extend the feature set.
      Enjoy!
      System requirements
      PHP 5.6.4 or greater Composer The PHP mbstring extension General information
      This module enables you to access a single Dropbox (www.dropbox.com) account to upload files from a ProcessWire website.
      All kudos to (https://github.com/kunalvarma05/dropbox-php-sdk) for the PHP API.
      First steps
      Visit (https://www.dropbox.com/developers) and read the documentation. Log into Dropbox and create a new application. It's recommended to limit ProcessWire App access to a specified folder Make a note of the App key, the App secret and the name of the Dropbox folder Installation
      Download the zip file into your site/modules folder then expand the zip file. Next, login to ProcessWire > go to Modules > click "Refresh". You should see a note that a new module was found. Install the DropboxAPI module. Configure the module with your App key, App secret and your Call Back URL You need to generate a Dropbox access token to enable your site to communicate with the nominated Dropbox account. Dropbox will generate a token for you or you can create a page for the front end of your ProcessWire site with a template to submit the token request to Dropbox, eg:
      <?php namespace ProcessWire; $drop = $modules->get('DropboxAPI'); if ($input->get->code && $input->get->state) { $code = $sanitizer->text($input->get->code); $state = $sanitizer->text($input->get->state); //Fetch the AccessToken $accessToken = $drop->getAccessToken($code, $state); echo "Copy/paste this code into the module configuration: " . $accessToken; } else { echo "<p><a href='" . $drop->getAuthURL() . "'>Log in with Dropbox</a></p>"; } ?> Once you have entered the token in the module configuration, you can unpublish this page.
      Usage
      Read the dropbox-php-sdk documentation!
      An example template for sending a file to a Dropbox App folder from ProcessWire:
      <?php namespace ProcessWire; use Kunnu\Dropbox\Dropbox; use Kunnu\Dropbox\DropboxApp; use Kunnu\Dropbox\DropboxFile; // send pdf to Dropbox $drop = $modules->get('DropboxAPI'); $app = new DropboxApp($drop->app_key, $drop->app_secret, $drop->authorization_code); if ($app) { //Configure Dropbox service $dropbox = new Dropbox($app); $dropboxFile = new DropboxFile('/path/to/myfilename.pdf'); $file = $dropbox->upload($dropboxFile, "/myfilename.pdf", ['autorename' => true]); //Uploaded File meta data if ($file) { $success = $file->getName() . " uploaded to Dropbox"; $drop->log($success); } }  
       
    • By sirhc
      Hi all,
      Im trying to install this core module and got the error of not having the ImageMagick library installed.
      But if im checking for the version of my ImageMagick installed on my server via SSH im getting this response;
      identify -version
      Version: ImageMagick 6.9.4-9 Q16 i386 2016-06-21 http://www.imagemagick.org
      Copyright: Copyright (C) 1999-2016 ImageMagick Studio LLC
      License: http://www.imagemagick.org/script/license.php
      Features: Cipher DPC 
      Delegates (built-in): bzlib freetype gslib jng jpeg png ps tiff xml zlib
      Does this even mean the library is installed? And if yes, why cant i install my module?
      Pleaassee help me
      Greetz.