You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2015-01-07-pagebuilder.markdown
+6-5
Original file line number
Diff line number
Diff line change
@@ -20,12 +20,13 @@ Page Builder has been designed to:
20
20
## Stage 1 - Planning
21
21
### User Flows and Wireframes
22
22
Our User Experience designer kicked of this project by researching and creating a series of user-flows for each aspect of Page Builder -
23
+
23
24
1. Dragging new content into the page
24
25
2. Reordering, modifying and deleting said content
25
26
26
27
Once those user flows has been finalised, we turned to creating wireframes of the interface.
27
28
28
-
> [pic of all those damn wirefreames]
29
+

29
30
30
31
### Drag and Drop
31
32
From the outset, we knew the biggest challenge on this project would be the drag and drop functionality. It needed to be as smooth and as glitch-free as possible for our users. With this in mind, we set about researching the best Javascript drag and drop library available to us (we didn't have the time to write our own).
@@ -51,8 +52,6 @@ Once we had our user flows, wireframes and decided which drag and drop library t
51
52
52
53
This went surprisingly well, with hardly any problems that we couldn't iron out relatively quickly (with the help of Google and Stackoverflow). This then left us free to focus a lot more time on other functionality and the user interface later on in the project - as we were able to use much of the code (after a bit of a refactor) from the prototype in the main codebase.
53
54
54
-
> [image of various prototypes for dragging]
55
-
56
55
## Stage 3 - Development
57
56
The majority of Page Builder was built using vanilla Javascript and a small amount of PHP to handle saving, loading and publishing of the page. We also made use of Grunt to compile the various modularised Javascript files (using uglify) and SASS for compiling the components we are using from our pattern library.
58
57
@@ -63,7 +62,7 @@ For development, we broke Page Builder down into four parts -
63
62
1. Dragging and Dropping of the containers and content blocks
64
63
1. Panels for displaying/editing container and content block settings
65
64
66
-
>[diagram of containers and content block markup hierarchy]
65
+

67
66
68
67
In keeping with our ethos of avoiding using jQuery the only part of the Page Builder code that uses it is the drag and drop functionality, we made a point of ensuring everything else was vanilla Javascript.
69
68
@@ -90,7 +89,9 @@ During our testing, users repeatedly clicked "Replace" thinking it would have th
90
89
91
90
Our immediate solution to this was to reposition the "Done" button to the top right, and give it a fixed position so it would overlay the content if the user scrolled. We also changed the word "Replace" to "Switch" and enhanced the styling of the buttons. We will be gathering more feedback to determine if this is the best solution.
92
91
93
-
> [image of panel with buttons before/after]
92
+
#### Before and after:
93
+
94
+
 
94
95
95
96
# Wrapping Up
96
97
Page Builder is currently only available as a beta feature to our users, on a request basis so that we can gather feedback and ensure it's bug free before launching it to our whole customer base.
0 commit comments