#silverstripe IRC Log

IRC log for 18 November 2015

All timestamps are in UTC.

1: [00:01:15] * DanaeNZ has joined #silverstripe
2: [00:03:57] <zippy> mother fucker cup of soup
3: [00:04:36] <Colin[pi]> yeah fuck that soup
4: [00:04:40] <Colin[pi]> bitch ass soup
5: [00:06:21] <zippy> think it can be all hot and shit, burn my mouth... bitch..
6: [00:06:56] <zippy> gonna add some cold water, see what it's punk ass thinks about that!
7: [00:07:50] <Colin[pi]> yeah you tell that soup who's boss
8: [00:10:55] <zippy> christ
9: [00:11:12] <zippy> a payment services providor, you think their test / demo environment would be pretty solid
10: [00:11:19] <Colin[pi]> zippy: you'd be surprised
11: [00:11:27] <zippy> tell me about it
12: [00:11:30] <Colin[pi]> some of the worst envs I've seen are payment providers
13: [00:11:37] <Colin[pi]> like, most of them suck so bad
14: [00:11:49] <zippy> 4 days and still waiting to do my first API call because there is a bug in the demo stuff
15: [00:11:54] <Colin[pi]> lol
16: [00:11:55] <zippy> roll on stripe..
17: [00:12:06] <Colin[pi]> zippy: ever dug around in the paypal api?
18: [00:12:23] <zippy> please... don't remind me
19: [00:12:26] <Colin[pi]> god damn it's a piece of fucking shit, I rage so hard every time I need to use it lol
20: [00:12:43] <Colin[pi]> though their newer rest api is an improvement
21: [00:13:19] <Colin[pi]> I had to do an integration with a bank's gateway last year too here in AU, also a flaming piece of turd
22: [00:13:45] <zippy> and thats once you work out what 'product' you are going to use, paypal have all sorts of products which get renamed and moved around and some not available in some countires...
23: [00:14:15] <zippy> thankfully omnipay helps a lot there
24: [00:14:59] <Colin[pi]> zippy: yup, changes all the time, and then you get countless 404's when you click links in their doco (╯°□°)╯︵ ┻━┻
25: [00:15:19] <zippy> I just love it when the sandbox works one day, and then stops the next day
26: [00:15:25] <Colin[pi]> lolol
27: [00:15:33] <Colin[pi]> qwality
28: [00:15:42] <zippy> live $1 purchases ftw
29: [00:16:07] <zippy> https://stripe.com/global - AU but no NZ... terrible..
30: [00:16:23] <Colin[pi]> woah Jonah Lomu, wtf?
31: [00:16:51] <zippy> guess thats the price you pay for having no nuclear ship policy..
32: [00:16:56] <zippy> Colin[pi]: hm?
33: [00:17:04] <Colin[pi]> zippy: passed away at 40 :(
34: [00:17:09] <Colin[pi]> he was sick though iirc
35: [00:17:14] <zippy> oh for real
36: [00:19:14] <Colin[pi]> that's sad
37: [00:19:19] <Colin[pi]> poor guy, so young
38: [00:20:48] <helenclarko> Colin[pi]: GOD NO!
39: [00:21:20] <Colin[pi]> too much shitty news lately
40: [00:24:32] <zippy> yeap, first ross taylor just short of 300 and then this...
41: [00:24:48] <zippy> jk. I mean europe..
42: [00:24:52] <eolant> Soooo, is there a way to set up date and time format across all template variables?
43: [00:25:11] * micmania1 has joined #silverstripe
44: [00:25:14] <Colin[pi]> eolant: all template variables?
45: [00:26:00] <helenclarko> zippy: so the scale is 1. Ross Taylor not getting 300, 2. Jonah Lomu's death, 3. Europe
46: [00:26:15] <eolant> Or data fields from DataObject
47: [00:27:22] <Colin[pi]> eolant: usually what I do is make a FormattedDate($format='default') method and call that
48: [00:27:34] <Colin[pi]> i.e. $FormattedDate in template
49: [00:27:43] <Colin[pi]> or pass the format $FormattedDate(d F Y)
50: [00:28:09] <zippy> Colin[pi]: .. https://www.youtube.com/watch?v=HfISExAi4NQ Only in Perth ..... Cops on the Hunt for Motorised Picnic Table !
51: [00:28:34] <zippy> You can also use the $Now
52: [00:28:43] <zippy> $Now.format('Js M Y')
53: [00:28:47] <zippy> that will be current time
54: [00:28:59] <Colin[pi]> zippy: we had a bloke in trouble for using a motorised esky (chilly bin) in Tasmania
55: [00:31:44] <zippy> antmas: summer is coming, the mouse is starting to slip from my hands
56: [00:32:03] <helenclarko> eolant: MAybe just break it down at the template level, $Date.DayOfMonth $Date.Month $Date.Year???
57: [00:33:18] <helenclarko> eolant: What format do you need?
58: [00:38:42] <eolant> helenclarko: I did Config::inst()->update('i18n', 'date_format', 'dd.MM.YYYY'); and it affected only DateField and TimeFild in CMS but had no effect on templates. Would be annoying to type format for template stuff everytime
59: [00:55:19] <hailwood> Hey folks, Is there anything special needed to add a new member? or can we just do it like any other dataobject?
60: [00:55:48] <zippy> hailwood: payment to Zippy for 1 million dollars
61: [00:56:11] * hailwood processes payment @ $0.001/day
62: [00:56:14] <helenclarko> eolant: i18n::set_date_format('dd/MM/yyyy');
63: [00:56:19] <zippy> just like a DO, I thik you just have to call a method to set password so it's hashed IIRC
64: [00:56:39] <helenclarko> eolant: I dunno actually... I'm trying looking into it.
65: [01:01:36] * Tanger has joined #silverstripe
66: [01:06:17] <antmas> <zippy> antmas: summer is coming, the mouse is starting to slip from my hands
67: [01:06:22] <antmas> lol I know that feeling
68: [01:06:27] <antmas> gonna be a warm one I reckon
69: [01:06:36] <eolant> helenclarko: Looks like I have to specify format for each time I want to output date in template
70: [01:06:39] <helenclarko> eolant: Its a hard one, simply because the date modifiers (.Nice, .NiceUS) all set the Format in different ways.
71: [01:07:31] <eolant> helenclarko: it's just weird that setting format affects CMS and doesn't affect front-end
72: [01:07:42] * harry1 quit (Ping timeout: 246 seconds)
73: [01:08:44] <zippy> mmm El Niño
74: [01:09:57] <eolant> not to mention they are using different formatting conventions
75: [01:09:58] <helenclarko> zippy: whenever I hear that word I feel hot
76: [01:10:22] <zippy> like, spicy mexican
77: [01:10:45] * nikob has joined #silverstripe
78: [01:11:17] * micmania1 quit (Quit: micmania1)
79: [01:12:32] <helenclarko> zippy: https://www.youtube.com/watch?v=IvmeUStFvz8
80: [01:13:16] <irogue> its like raaaaaaaaaaaiaaain, on your wedding day
81: [01:13:47] * spronk quit (Quit: I may need a longer sleep timer...)
82: [01:16:58] * spronk has joined #silverstripe
83: [01:17:26] <DanaeNZ> irogue: omg that's what the lyrics are
84: [01:18:52] <Colin[pi]> DanaeNZ: what did you think it was??
85: [01:21:50] <ss-helper> Re: Module scaffolding - https://groups.google.com/d/msg/silverstripe-dev/ZCKj-mBWv9Q/5CD17x_EBgAJ
86: [01:22:05] <DanaeNZ> Colin[pi]: irish gibberish fuck if I know
87: [01:22:12] <Colin[pi]> lolol
88: [01:22:56] <Colin[pi]> DanaeNZ: it's ok, you know U2 "Desire"? For years I thought he was singing "Cause I.yi.yi.yi.yi.yi.yi.yi.yi.yi err"
89: [01:23:47] <irogue> y'all seen the 2015 version of Ironic? https://www.youtube.com/watch?v=6GVJpOmaDyU
90: [01:24:51] <jules0x> shortcodes. anyone using these?
91: [01:24:59] <Colin[pi]> jules0x: yeah dude
92: [01:25:16] <jules0x> when I'm adding my shortcodes to the editor, they get wrapped in <p></p>
93: [01:25:36] <jules0x> this results in <p></p>My shortcode stuff<p></p> on the front end
94: [01:26:02] <jules0x> empty P's everytiem.
95: [01:26:10] <Colin[pi]> jules0x: lamesauce
96: [01:26:29] <jules0x> is it normla?
97: [01:27:03] <Colin[pi]> jules0x: if you add them on an "empty line" yes, as TinyMCE will create a para... but the shortcode should be inside the <p>
98: [01:27:12] <Colin[pi]> otherwise it should just inline with the rest of the text
99: [01:27:40] <jules0x> my shortcode has a custom handler which renders markup using a template, then inserts that
100: [01:27:47] <Colin[pi]> ahh
101: [01:27:49] <jules0x> but yeah.
102: [01:28:20] <jules0x> so <p><div>myshortcode stuff</div><p> would be the outcome if it was inside the P
103: [01:29:29] <jules0x> any idea if its possible to tell tinymce somehow to NOT wrap shortcodes in P ?
104: [01:31:32] <jules0x> oohkay not a new problem... found a few links relating to it.
105: [01:32:44] <Colin[pi]> lol tinymce, that's your problem ;P
106: [01:32:52] <Colin[pi]> I rage hard any time I need to tinymce
107: [01:32:55] <jules0x> amen
108: [01:33:01] <irogue> fuck tinymce
109: [01:33:08] <jules0x> implemented a fullscreen save button on tinymce the other day
110: [01:33:14] <jules0x> rargh
111: [01:33:15] * BrewNake_ quit (Ping timeout: 240 seconds)
112: [01:33:32] <helenclarko> aww come on guys tis not that bad.
113: [01:33:40] <Colin[pi]> jules0x: I have a nice kinda "template" I use now to make shortcode toolbar buttons
114: [01:33:47] <Colin[pi]> but it's so clunky to code up
115: [01:34:03] <jules0x> shortcode buttons on the editor control area?
116: [01:34:06] <helenclarko> lol jk jk
117: [01:34:09] * BrewNaked has joined #silverstripe
118: [01:34:11] <jules0x> :D
119: [01:34:46] <Colin[pi]> jules0x: yah I made one recently for a client where they needed to link to a DO which is usually modeladmin managed
120: [01:35:02] <Colin[pi]> so it pops up a little dialog and has some ajax dropdown for them to choose which DO to link to
121: [01:35:12] <jules0x> that sounds useful.
122: [01:36:47] <hailwood> Hmm, if I have a custom form that has a FileField, and I have a FormSubmission D/O that has a has_one "File" with a matching name, what do I need to do so I can a) have the upload saved, b) email the uploaded as an attachment?
123: [01:38:06] <hailwood> Ok, so ignore b, I get that part now, but a) I cannot find an example for
124: [01:39:24] <hailwood> This is a frontend form btw
125: [01:51:44] * r_hector has joined #silverstripe
126: [01:52:40] * BrewNaked quit (Read error: Connection reset by peer)
127: [01:53:12] * BrewNaked has joined #silverstripe
128: [01:54:21] * DanaeNZ quit (Remote host closed the connection)
129: [01:54:35] * DanaeNZ has joined #silverstripe
130: [01:58:47] * BrewNake_ has joined #silverstripe
131: [01:58:48] * BrewNaked quit (Read error: Connection reset by peer)
132: [01:58:51] <antmas> aw man
133: [01:58:55] <antmas> Lomu died :(
134: [02:00:55] <zippy> mm
135: [02:01:12] <antmas> 40 is so young too :(
136: [02:04:42] * micmania1 has joined #silverstripe
137: [02:06:30] * elgabbu quit (Ping timeout: 246 seconds)
138: [02:18:18] * r_hector quit (Remote host closed the connection)
139: [02:20:50] * joelpittet quit ()
140: [02:21:38] * antmas quit (Quit: Page closed)
141: [02:26:26] * krofek quit (Read error: Connection reset by peer)
142: [02:27:20] * r_hector has joined #silverstripe
143: [02:27:33] * krofek has joined #silverstripe
144: [02:37:15] * BrewNake_ quit (Ping timeout: 252 seconds)
145: [02:39:24] * TRB143 quit (Ping timeout: 255 seconds)
146: [02:40:19] * BrewNaked has joined #silverstripe
147: [02:40:35] <DanaeNZ> wednesday is nearly over every one
148: [02:40:37] <DanaeNZ> don't panic
149: [02:41:20] <helenclarko> DanaeNZ: Feeling shitty on a Wednesday :-(
150: [02:41:34] <DanaeNZ> I'm ready for the christmas holidays
151: [02:42:19] * joelpittet has joined #silverstripe
152: [02:50:29] * Colin[pi] has left #silverstripe
153: [02:56:43] <nontgor> micmanial: Thanks for the pointers yesterday regarding mocks and testing. I ended up copying the Translatable class, marking it as TestOnly, and toggling it on or off via extensions in the tests. Seems to have work though I now need to chop out the methods not used so as not to affect coverage
154: [02:56:51] <nontgor> %age that is
155: [03:10:27] * camfindlay quit (Quit: camfindlay)
156: [03:26:18] * Stomach quit (Quit: zzz)
157: [03:28:41] <hailwood> Hey folks, so I have $searchable_fields = ['Created']; which works well until you submit the form, at which point it throws a bitch because ?q[Created][date]=2015-05-15&q[Created][time]= creates an array and the getList function calls $params = array_map('trim', $params); (with $params being $this->getRequest()->requestVar('q');)
158: [03:30:14] * micmania1 quit (Quit: micmania1)
159: [03:30:19] * zippy quit (Quit: Textual IRC Client: www.textualapp.com)
160: [03:30:51] * helenclarko quit (Quit: Ain't no lie, baby bye bye bye.)
161: [03:31:14] <Tanger> Hey guys, anybody know if FrankMullenger is on IRC? The champ who does a lot of work on silverstripe-payments
162: [03:36:08] <irogue> thats your semi-namesake tankr, but he's not online much anymore
163: [03:37:06] * hailwood cries... Why does upload field not give you the ability to download your the attached file
164: [03:44:54] <Tanger> irogue: Haha, I thought it was him
165: [03:46:03] <eolant> Who broke silverstripe website?
166: [03:46:06] <eolant> XD
167: [03:47:25] <irogue> eolant ??
168: [03:47:40] * micmania1 has joined #silverstripe
169: [03:47:41] <eolant> irogue: http://api.silverstripe.org/3.2/
170: [03:48:02] <eolant> am I the only one who getting Not Found?
171: [03:48:24] <irogue> oh, API docs
172: [03:48:49] <Tanger> eolant: Nope, me too
173: [03:49:01] <irogue> it got broke earlier, looks like its broken again
174: [03:49:03] <irogue> fix it ss-helper
175: [03:49:04] <Tanger> Quick, gather the troops!
176: [03:49:05] <irogue> * ss23
177: [03:49:17] <irogue> :P
178: [03:49:34] <ss23> :O
179: [03:49:38] <ss23> We're fixing it
180: [03:49:46] <ss23> Generating to directory /sites/ss-api/releases/20151118033322/htdocs/master [===========> ] 18.12% 206M
181: [03:50:00] <ss23> There's a "bug" where doing a release breaks the API docs until they're regenerated
182: [03:50:03] <ss23> which takes like 30 minutes
183: [03:50:05] <eolant> :(
184: [03:50:14] <eolant> :((
185: [03:50:16] <ss23> You can use github for now if you're creative!
186: [03:50:23] <ss23> And in like 5 minutes you'll be able to use the /master/ docs
187: [03:50:31] <ss23> http://api.silverstripe.org/master/
188: [03:50:50] <eolant> ss23: cheers!
189: [03:53:20] <DanaeNZ> why does it feel like friday
190: [03:53:24] <DanaeNZ> and why isn't it friday
191: [03:53:27] <DanaeNZ> this is some BULL SHIT
192: [03:54:12] <irogue> production deployment on friday afternoon
193: [03:54:14] <irogue> qqqqqq
194: [04:01:44] <DanaeNZ> QQ
195: [04:02:10] <ss23> DanaeNZ: omfg tru dat
196: [04:02:19] <ss23> weather here is friday weather too
197: [04:02:48] * joelpittet quit (Remote host closed the connection)
198: [04:08:25] * r_hector quit (Remote host closed the connection)
199: [04:09:55] * hailwood quit (Remote host closed the connection)
200: [04:25:44] * Stomach has joined #silverstripe
201: [04:27:38] * joelpittet has joined #silverstripe
202: [04:29:41] * micmania1 quit (Quit: micmania1)
203: [04:30:31] * BrewNaked quit (Read error: Connection reset by peer)
204: [04:30:39] * BrewNaked has joined #silverstripe
205: [04:31:54] * joelpittet quit (Client Quit)
206: [04:40:02] * UncleCheese quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
207: [04:41:07] * DanaeNZ quit (Remote host closed the connection)
208: [04:49:22] * irogue quit (Quit: Textual IRC Client: www.textualapp.com)
209: [05:01:21] * joelpittet has joined #silverstripe
210: [05:07:55] * DanaeNZ has joined #silverstripe
211: [05:16:54] * mahfuz quit (Ping timeout: 246 seconds)
212: [05:23:49] * spronk quit (Quit: I may need a longer sleep timer...)
213: [05:42:45] * Stomach quit (Quit: zzz)
214: [05:43:31] * joelpittet quit (Remote host closed the connection)
215: [05:47:01] * joelpittet has joined #silverstripe
216: [05:48:58] * nikob quit (Quit: Leaving)
217: [05:52:50] * Error404NotFound has joined #silverstripe
218: [06:04:13] * DanaeNZ quit (Remote host closed the connection)
219: [06:04:31] * Stomach has joined #silverstripe
220: [06:16:15] * Stomach quit (Quit: zzz)
221: [06:16:39] * Stomach has joined #silverstripe
222: [06:17:56] * Stomach quit (Client Quit)
223: [06:42:53] * jb has joined #silverstripe
224: [06:43:40] <jb> Hello,how to create a drag and drop in gallary module
225: [06:46:31] * wmk has joined #silverstripe
226: [06:50:22] * joelpittet quit ()
227: [06:57:40] * jb quit (Quit: Page closed)
228: [07:10:13] * hailwood has joined #silverstripe
229: [07:10:41] <hailwood> Hey folks, has anyone created a custom action with betterbuttons? I cannot seem to get a icon to show up in my button
230: [07:11:32] * BrewNaked quit (Read error: Connection reset by peer)
231: [07:12:11] * BrewNaked has joined #silverstripe
232: [07:27:11] * Eliseth has joined #silverstripe
233: [07:28:42] <wmk> stunning.. first use of sspak
234: [07:48:38] * irogue has joined #silverstripe
235: [07:52:49] * DanaeNZ has joined #silverstripe
236: [07:57:21] * DanaeNZ quit (Ping timeout: 252 seconds)
237: [07:58:14] * arnhoe has joined #silverstripe
238: [08:09:33] <hailwood> sspak?
239: [08:10:44] <irogue> https://github.com/silverstripe/sspak
240: [08:23:49] * BrewNake_ has joined #silverstripe
241: [08:23:50] * BrewNaked quit (Read error: Connection reset by peer)
242: [08:26:17] * Stomach has joined #silverstripe
243: [08:27:33] <hailwood> That.Looks.Awesome.
244: [08:41:10] <irogue> its one of those things that happened when sminnee got bored once
245: [08:41:28] <hailwood> Hey folks, So, I have a custom form on the frontend with a FileField on it for uploading some files which get saved when I do $form->saveInto($submission);, My question is - Can I alter where the files are stored based on some of the form data? I'd like the files stored in /assets/submissions/url-version-of-one-of-the-fields/{here} I'd also like to set the name the file saves as.
246: [08:43:39] <irogue> yeah, shouldn't be a problem, but of course you'll need to make sure you do a good job of sanitizing the field
247: [08:45:22] * Error404NotFound quit (Ping timeout: 272 seconds)
248: [08:48:35] <hailwood> irogue, Yeah, the sanitization is no real issue, but I'm at a bit of a loss as to how to actually complete those two tasks?
249: [08:53:05] * cupcake has joined #silverstripe
250: [08:53:12] <cupcake> Morning o/
251: [08:53:32] <cupcake> how do you get the current url of the dataobject ure editing?
252: [08:54:07] <hailwood> irogue, I'm about to try https://gist.github.com/hailwood/65f2b22a3d1c1675f2ae - Does it seem even close?
253: [08:54:38] <irogue> hailwood: you'd have to do it in DataObject->onBeforeWrite I think
254: [08:55:34] <irogue> hailwood: hmm, give it a try
255: [08:55:37] <hailwood> cupcake, Silverstripe doesn't know where you'd be editing your DO's so there is no default link
256: [08:56:39] <cupcake> ok
257: [08:56:48] <cupcake> then when you click save the page saves
258: [08:56:49] * swaiba has joined #silverstripe
259: [08:56:53] <cupcake> and reloads
260: [08:57:02] * Error404NotFound has joined #silverstripe
261: [08:57:04] <cupcake> somehow it manages to redirect to that url no?
262: [08:58:00] <irogue> cupcake: perhaps explaining your actual use case might help us understand what you're trying to do
263: [08:58:23] <cupcake> so i created an action button on a editform for a DO
264: [08:58:47] <cupcake> when u click it, it makes some changes to the DO and saves it
265: [08:58:59] <cupcake> and i want to reload the page of editing the DO
266: [09:00:31] * elgabbu has joined #silverstripe
267: [09:01:36] <irogue> cupcake: I'd probably look at how betterbuttons is doing it - you shouldn't need to reload the whole CMS, saving just reloads the particular editing pane
268: [09:01:37] <irogue> https://github.com/unclecheese/silverstripe-gridfield-betterbuttons
269: [09:02:00] * kinglozzer has joined #silverstripe
270: [09:08:34] * zippy has joined #silverstripe
271: [09:11:38] * Stomach quit (Quit: zzz)
272: [09:14:03] * Error404NotFound quit (Ping timeout: 255 seconds)
273: [09:17:40] * GioVdK has joined #silverstripe
274: [09:17:58] * Tanger quit (Quit: sleep())
275: [09:22:17] * zippy quit (Quit: Textual IRC Client: www.textualapp.com)
276: [09:24:21] * r_hector has joined #silverstripe
277: [09:26:15] * BrewNake_ quit (Ping timeout: 250 seconds)
278: [09:27:02] * Error404NotFound has joined #silverstripe
279: [09:27:27] * BrewNaked has joined #silverstripe
280: [09:28:01] * Error404NotFound quit (Max SendQ exceeded)
281: [09:28:30] * Error404NotFound has joined #silverstripe
282: [09:30:27] * spronk has joined #silverstripe
283: [09:34:15] * Otterpocket has joined #silverstripe
284: [09:47:38] * r_hector quit (Remote host closed the connection)
285: [09:48:13] <hailwood> Hmm, how can we move a file from one folder to another via code?
286: [09:55:26] <swaiba> hailwoodprobably not "official" but use copy() and then update the ParentID of the fiel to that new folder
287: [10:08:17] <Eliseth> Morning 0/
288: [10:10:04] <hailwood> swaiba, I got it, you just update the "Name" via setName() then call write() and it will move it
289: [10:10:20] <hailwood> Eliseth, Morning \o
290: [10:11:26] <Eliseth> I have a DO1 with a has_many relation to DO2. Now I want to get all items from DO1 that actually has linked objects from DO2. How would I do that? DO1::get()->filter(???)
291: [10:12:02] <hailwood> irogue, If you're interested, In my form submit I used setFolderName() on the field to set the folder I wanted it to go to, then in onAfterWrite on the submission I use ->setName() and ->Title = '...' on the file relation to change the name of the file.
292: [10:13:26] <hailwood> Eliseth, If I'm understanding you correctly you're wanting to get all DO1's that are related to a specific DO2?
293: [10:14:45] <Eliseth> Not a specific, any at all
294: [10:14:58] <swaiba> hailwood sweet :) that is great to know, thanks
295: [10:14:59] * BrewNaked quit (Ping timeout: 246 seconds)
296: [10:15:05] <Eliseth> Basically if DO1 has ANY Do2's linked return it
297: [10:15:06] * irogue quit (Ping timeout: 250 seconds)
298: [10:15:25] <Eliseth> If it has 0 DO2, skip it
299: [10:15:37] * BrewNaked has joined #silverstripe
300: [10:15:38] * Error404NotFound quit (Quit: User guilty of hitting the Big Red X...)
301: [10:15:47] <hailwood> Ah righto, how is DO2 related back to DO1? has_one or many_many?
302: [10:15:54] * Error404NotFound has joined #silverstripe
303: [10:16:11] <Eliseth> has_one
304: [10:17:46] <hailwood> So, DO1:get()->filter('DO2RelationName:ExactMatchFilter:not', 0) should work I believe
305: [10:20:21] <Eliseth> Hmmmm
306: [10:20:21] <Eliseth> Uncaught exception 'InvalidArgumentException' with message 'ExactMatchFilter does not accept ExactMatchFilter as modifiers
307: [10:20:42] <slievr> I thought it was just ExactMatch
308: [10:20:53] <slievr> not exactmatchfilter
309: [10:21:55] * hailwood awards gold star to slievr
310: [10:22:14] <Eliseth> hehe
311: [10:22:26] <kinglozzer> Eliseth: $ids = DO2::get()->column('<relationname>ID'); $items = DO1::get()->filter('ID', $ids)
312: [10:22:35] <kinglozzer> Probably a better way, can't think off the top of my head
313: [10:23:49] <hailwood> kinglozzer, Interesting approach which makes me think DO1::get()->exclude('D02RelationNameID', 0)
314: [10:24:23] <Eliseth> DO1::get()->filter('has_many_relationname.ID:ExactMatch:not', 0)
315: [10:24:24] <kinglozzer> hailwood: There is no DO2relationnameID column though, as it's a has_any
316: [10:24:26] <kinglozzer> many*
317: [10:24:59] <kinglozzer> That could work Eliseth
318: [10:25:06] <Eliseth> It seems to work
319: [10:25:22] * BrewNaked quit (Read error: Connection reset by peer)
320: [10:25:38] <kinglozzer> Eliseth: Actually that's pretty similar to hailwood's example
321: [10:25:52] <kinglozzer> DO1::get()->exclude('has_many_relationname.ID', 0)
322: [10:26:06] <hailwood> kinglozzer, The DO1 is has_one to DO2, DO2 is has_many to DO1, so doesn't DO1 have the column?
323: [10:26:15] * boozy has joined #silverstripe
324: [10:26:15] <ss-helper> boozy: Welcome to #silverstripe! Please ask your questions but don't leave too soon, we are a busy lot.
325: [10:26:18] <Eliseth> It is, all I did was adding the .ID
326: [10:26:20] <hailwood> oh, I got them wrong way around
327: [10:26:56] <kinglozzer> I had to translate it in my head to product has_one category, DO1/DO2 was confusing me :P
328: [10:27:10] <boozy> hey guys, how do i set the ID of the current page as a folder in my assets dir? I've been trying something like this, but doesnt work so far $Image->setFolderName('Uploads/portfolio/'.$this->ID().'');
329: [10:27:11] * BrewNaked has joined #silverstripe
330: [10:27:14] <Eliseth> Sorry, I'll make it more clear :P
331: [10:27:33] <hailwood> boozy, no ()
332: [10:27:36] <Eliseth> Property has_one Region
333: [10:27:37] <hailwood> just $this->ID
334: [10:27:44] <Eliseth> Region has_many Property
335: [10:28:00] <Eliseth> I need all regions that actually have properties :)
336: [10:28:15] <boozy> lol - ofcourse hailwood
337: [10:28:19] <boozy> stupid mistake :\
338: [10:28:30] <boozy> thanks
339: [10:32:28] * BrewNake_ has joined #silverstripe
340: [10:32:28] * BrewNaked quit (Read error: Connection reset by peer)
341: [10:36:44] * CodeTrap has joined #silverstripe
342: [10:38:25] <kinglozzer> Eliseth: I actually did the exact same thing, just looking at it now I used my example but yours is better
343: [10:38:32] <kinglozzer> Mine does 2 db queries instead of 1 with a join
344: [10:39:23] <Eliseth> Thanks to hailwood that is :)
345: [10:46:06] * MarkGuinn has joined #silverstripe
346: [10:46:42] * CodeTrap quit (Quit: CodeTrap)
347: [10:59:51] * BrewNake_ quit (Ping timeout: 250 seconds)
348: [11:03:09] * BrewNaked has joined #silverstripe
349: [11:03:44] * darjusIT has joined #silverstripe
350: [11:17:33] <darjusIT> Hi after login, then you type url /security/login how to force it to redirect to /account page?
351: [11:20:07] <hailwood> Hmm, Anyone know why I can send emails in silverstripe, but as soon as I $email->attachFile($cvFile->getFilename()); it doesn't send? Yet the result of $email->send() indicates that it has sent anyway
352: [11:22:32] * Mike123 has joined #silverstripe
353: [11:22:43] <Mike123> Hello all :D
354: [11:25:00] <kinglozzer> darjusIT: Security.default_login_dest config setting
355: [11:25:28] <kinglozzer> You can use that to set which page users are sent to after logging in
356: [11:25:33] <darjusIT> thx, kinglozzer
357: [11:25:36] <kinglozzer> Hey Mike123 :)
358: [11:25:48] <darjusIT> Ahoy Mike123
359: [11:25:52] * ziggypup has joined #silverstripe
360: [11:25:53] <ss-helper> ziggypup: Welcome to #silverstripe! Please ask your questions but don't leave too soon, we are a busy lot.
361: [11:25:53] <ziggypup> Random quote 2
362: [11:25:55] * ziggypup has left #silverstripe
363: [11:31:02] * DanaeNZ has joined #silverstripe
364: [11:33:53] * hailwood quit (Remote host closed the connection)
365: [11:35:35] * DanaeNZ quit (Ping timeout: 260 seconds)
366: [11:51:11] * Jakx quit (Ping timeout: 264 seconds)
367: [11:57:15] <darjusIT> I have made Security_Login.ss to change page structure, but what file name should be to make Form ss file?
368: [11:59:00] <kinglozzer> huh?
369: [11:59:28] <kinglozzer> I'm confused darjusIT, what are you trying to do?
370: [11:59:59] <darjusIT> I need to customize login form
371: [12:00:25] <darjusIT> Is it possible to make LoginForm.ss
372: [12:00:30] <darjusIT> and loop there it
373: [12:01:44] * BrewNake_ has joined #silverstripe
374: [12:02:36] <kinglozzer> darjusIT: I don't think so
375: [12:02:49] <kinglozzer> wmk: does your tips site have anything about customising the login form?
376: [12:02:59] * BrewNaked quit (Ping timeout: 276 seconds)
377: [12:03:01] * jcwacky has joined #silverstripe
378: [12:05:34] * wmk quit (Ping timeout: 260 seconds)
379: [12:05:53] <darjusIT> I need just inner form html structure thats it
380: [12:07:29] <MarkGuinn> darjusIT - I think you can replace $LoginForm (or whatever it actually is) in the Security_Login.ss template with something like: <% with $LoginForm %>custom form markup<% end_with %>
381: [12:07:59] <MarkGuinn> you can have a look at the Form.ss template in the framework for some boilerplate that needs to be in there
382: [12:08:17] <darjusIT> hmm nice idea thx.
383: [12:08:55] <MarkGuinn> but you can absolutely hardcode the fields. you can use $dataFieldByName('Email') and $fieldByName('Email') to get the field objects as needed
384: [12:09:15] <MarkGuinn> i warn you though, that it's a real pain to do it that way. if you can use CSS you're far better off
385: [12:12:43] <darjusIT> I went 3 way, made own Form.ss and just inserted all from framework file + my custom html structure changed flushed and works like charm
386: [12:20:46] * spronk quit (Quit: I may need a longer sleep timer...)
387: [12:31:17] * BrewNake_ quit (Ping timeout: 250 seconds)
388: [12:33:15] * BrewNaked has joined #silverstripe
389: [12:57:30] * boozy quit (Ping timeout: 246 seconds)
390: [13:00:53] * jcwacky quit (Read error: Connection reset by peer)
391: [13:01:10] * Error404NotFound quit (Read error: Connection reset by peer)
392: [13:04:37] * jcwacky has joined #silverstripe
393: [13:06:19] <Audlex> I used to be able to do this with UserForms but does not seem to work anymore, does anyone know any more about this? ?EditableTextField_d5122=test
394: [13:06:51] <Audlex> As in, passing values
395: [13:15:11] * UndefinedOffset has joined #silverstripe
396: [13:15:42] * Error404NotFound has joined #silverstripe
397: [13:16:11] * Error404NotFound quit (Remote host closed the connection)
398: [13:20:13] * SH__ has joined #silverstripe
399: [13:21:00] <SH__> Hey guys, Ive forgotten how you can manually add things to an objects ManyMany relation. For example I have a ManyMany images => image relation. How can I manually add an image to it?
400: [13:23:30] * jcwacky quit (Ping timeout: 240 seconds)
401: [13:23:59] <slievr> SH__ object->relation()->add($object to add);
402: [13:28:12] <SH__> Oh right of course, thanks!
403: [13:28:20] <slievr> np
404: [13:31:26] <MarkGuinn> Anyone know a way to prevent certain users from using the login form at all?
405: [13:34:01] <slievr> MarkGuinn: how would that work? they'd already be logged in
406: [13:34:34] <MarkGuinn> They would authenticate by other methods (REST API) and have no CMS access
407: [13:36:07] <slievr> ah, I'd assign a group an not serve them the login form if they belonged to it. There is probably a much better way though.
408: [13:39:07] <slievr> I have just realized I have typed rubbish
409: [13:40:23] <MarkGuinn> :)
410: [13:46:54] <swaiba> MarkGuinn https://github.com/axyr/silverstripe-adminlogin this is what I recommend (and use) for these sort of user questions
411: [13:47:15] <swaiba> this provides a login restriction based on IP, so can be reused for other criteria
412: [13:48:50] <swaiba> Audlex not really - sounds like a hack in the code to put the value in as instructed by params
413: [13:51:18] <MarkGuinn> thanks, swaiba!
414: [13:52:10] <MarkGuinn> can anyone recommend a good library for registration/authentication with facebook, google+, etc?
415: [13:53:47] <swaiba> MarkGuinn http://www.silverstrip.es/blog/can-you-use-facebook-google-or-twitter-to-login-get-member-details/
416: [13:54:05] <swaiba> and you're welcome x2 :)
417: [13:54:07] <MarkGuinn> ha! you guys have everything on that site
418: [13:54:34] <swaiba> I haven't made a post in a while, but the goal was to reduce DRY (don't repeat yourself) on here
419: [13:54:46] <MarkGuinn> great idea!
420: [13:55:12] <swaiba> just ask wmk for a login if you ever would like to contribute (open to all regulars)
421: [13:56:28] <slievr> is that the tips site that was mentioned earlier?
422: [13:57:44] <MarkGuinn> cool. any idea if anyone will be maintaining that BetterBrief module in the future?
423: [14:06:06] * SH__ quit (Ping timeout: 246 seconds)
424: [14:13:33] <swaiba> MarkGuinn - well we would submit patches if we needed here as we use it
425: [14:13:54] <swaiba> slievr I guess so, if not it's better than it ;-)
426: [14:14:28] <MarkGuinn> Good to know.
427: [14:15:46] <slievr> swaiba: awesome, will look there in future.
428: [14:22:10] <cupcake> guys i have a question
429: [14:22:33] <cupcake> im trying to do a custom better button action
430: [14:22:52] <cupcake> whose funtion is to set a field of the DO and then save everything
431: [14:23:31] <cupcake> but the save action triggered by the normal Save button is not being triggered through the custom action
432: [14:23:35] <cupcake> any ideas how i can do it?
433: [14:27:54] <Audlex> swaiba: it states you can do it on the github page
434: [14:30:15] * elgabbu quit (Ping timeout: 246 seconds)
435: [14:34:34] <swaiba> Audlex then it's just a case of debugging the code... happy days!
436: [14:35:41] <Audlex> hmmm, tomorrow it another day. cheers
437: [14:37:56] * elgabbu has joined #silverstripe
438: [14:55:22] <cupcake> swaiba any idea?
439: [14:56:36] <swaiba> cupcake I do an "onafterwrite hack" as I call it
440: [14:57:00] <swaiba> one check box triggers logic in on afterwrite, which then calls write again, but with the flag set to falg
441: [14:57:28] <swaiba> so, no, no comment on you custom action, but I'd do "ctions" in that way
442: [14:57:35] <swaiba> *"actions"
443: [15:03:43] * muskie9 has joined #silverstripe
444: [15:05:24] <cupcake> hmm ok thanks swaiba
445: [15:06:13] * cloph_away is now known as cloph
446: [15:08:27] * DanaeNZ has joined #silverstripe
447: [15:10:55] <MarkGuinn> Does anyone know why the docs say that subclassing Member is the "least desirable way"? (https://docs.silverstripe.org/en/3.1/developer_guides/security/member/#subclassing)
448: [15:11:28] <MarkGuinn> Is that just talking about if you want to add fields to Member? Or is that across the board?
449: [15:12:02] <MarkGuinn> I'm thinking of subclassing Member because there are legitimately several types of members in our logical data model but I don't want to cause any issues for ourselves later on.
450: [15:12:46] * DanaeNZ quit (Ping timeout: 240 seconds)
451: [15:16:57] <swaiba> MarkGuinn personally I extend and I use an emum in the extension or a group to define their type
452: [15:17:02] <kinglozzer> MarkGuinn: I'm not aware of any technical reason why you can't or shouldn't do it
453: [15:17:47] <MarkGuinn> The only technical reason I can think is additional joins.
454: [15:18:23] <swaiba> which is a good one, MarkGuinn, when you have a lot of memebers!
455: [15:18:38] <MarkGuinn> swaiba - do you ever have problems with too much logic accumulating from that? or do you have a separate extension for each type of member?
456: [15:18:53] <MarkGuinn> * too much logic in one class i mean
457: [15:19:35] <swaiba> MarkGuinn I'd have logic in the appropriate object, meaning that it's never "just about the member" but their organisation, the product they are buying, etc
458: [15:19:53] <swaiba> and refactoring aften means that no one object ever gets too big
459: [15:20:21] <MarkGuinn> makes sense
460: [15:26:15] * Mike123 quit (Ping timeout: 246 seconds)
461: [16:05:33] <cupcake> how do i bypass Are you sure ou want to navigate away from this page? dialog on a betterbuttoncustomaction which saves the DO?
462: [16:08:35] * arnhoe quit ()
463: [16:14:37] <Zauberfisch> cupcake: overload the selector with entwine I guess
464: [16:14:42] <Zauberfisch> oh wait
465: [16:14:46] <Zauberfisch> that was for classname
466: [16:14:55] <Zauberfisch> not for navigation away from the page
467: [16:17:59] * Eliseth quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
468: [16:18:50] * muskie9 quit (Read error: Connection reset by peer)
469: [16:20:57] * muskie9 has joined #silverstripe
470: [16:54:47] <nuxil> gosh.. theming is making me so confused, i dont get it.. if i open the cms and create a new page, call it MyTest. i then go to mysite\code and add MyTest.php in this i extend the page controller so on,, i then make themes/mytheme/themplates/layout/MyTest.ss . i then do a dev build and flush all. but still not doing what i want,, am i missing something?
471: [16:56:13] <slievr> what's you class called?
472: [16:57:16] * Jakx has joined #silverstripe
473: [16:58:17] <slievr> it's classname.ss for templates
474: [16:59:44] * jonners99 has joined #silverstripe
475: [17:00:53] <MarkGuinn> nuxil - you've got your steps backwards. First create the class, then visit /dev/build, then go to the CMS and make a page of that type. Then it should pick up your template.
476: [17:01:24] <nuxil> ahh
477: [17:01:27] <nuxil> thx
478: [17:14:27] <kinglozzer> Ooo new Github design
479: [17:18:40] <swaiba> kinglozzer lucky you, looks the same for me down ot the 404 page
480: [17:19:06] <kinglozzer> swaiba: After clicking yes to switch to it, I'm not sure sure I'm the lucky one...
481: [17:19:21] <kinglozzer> http://i.imgur.com/b0RgWq6.png
482: [17:19:30] <kinglozzer> I kinda prefer the old layout... and I can't switch back anywhere :P
483: [17:19:47] <swaiba> and I've not been offered this cahnge
484: [17:20:24] <swaiba> that pic is the old layout isn't it?
485: [17:20:35] <swaiba> anyway, bigger fish on the fryer
486: [17:23:34] * BrewNake_ has joined #silverstripe
487: [17:23:34] * BrewNaked quit (Read error: Connection reset by peer)
488: [17:23:47] <kinglozzer> swaiba: Nope, apparently not!
489: [17:24:18] * joelpittet has joined #silverstripe
490: [17:29:56] * kinglozzer quit ()
491: [17:30:34] * swaiba quit (Remote host closed the connection)
492: [17:33:01] * SphereSilver is now known as Sphere
493: [17:40:09] * jonners99 quit ()
494: [17:49:54] <nuxil> how can i place individual chlid pages in a set of divs on the parent. like loop over the number of children and do stuff in a theme? <% loop ??? %> <div> $child_x?
495: [17:51:52] * Stomach has joined #silverstripe
496: [17:54:40] <nuxil> never mind
497: [17:59:47] * GioVdK quit (Ping timeout: 246 seconds)
498: [18:00:19] <Sphere> I'm not entirely sure what you want to achieve nuxil, but ok :)
499: [18:03:14] <nuxil> Sphere, i wanted to know who i could get the name of the child pages a parrent has and put them in divs.. i found out. <% loop $Children %> <div><a href=$Link ,, blah $Title
500: [18:03:21] <nuxil> but i found out
501: [18:03:32] <nuxil> *who-> how
502: [18:10:12] <muskie9> nuxil have you gone through the lessons yet? https://www.silverstripe.org/learn/lessons/
503: [18:10:19] <muskie9> it covers a lot of that type of thing
504: [18:21:18] * muskie9 quit (Quit: My Mac has gone to sleep. ZZZzzz…)
505: [18:29:04] * Stomach quit (Quit: zzz)
506: [18:30:10] * sealan has joined #silverstripe
507: [18:37:10] * MarkGuinn quit (Quit: My Mac has gone to sleep. ZZZzzz…)
508: [18:39:31] * JackOconnor has joined #silverstripe
509: [18:44:49] * TRB143 has joined #silverstripe
510: [18:45:48] <Sphere> Hmmm, does anyone have a good Bootstrap3 Form template?
511: [18:46:01] <Sphere> I don't feel like rebuilding everything (angelface here)
512: [18:46:04] * DanaeNZ has joined #silverstripe
513: [18:50:30] * DanaeNZ quit (Ping timeout: 255 seconds)
514: [18:54:59] * Stomach has joined #silverstripe
515: [18:57:15] * BrewNake_ quit (Ping timeout: 255 seconds)
516: [18:58:44] * BrewNaked has joined #silverstripe
517: [19:06:02] * BrewNaked quit (Ping timeout: 260 seconds)
518: [19:07:01] * muskie9 has joined #silverstripe
519: [19:18:13] * gelignite has joined #silverstripe
520: [19:19:07] * MarkGuinn has joined #silverstripe
521: [19:28:34] * MarkGuinn quit (Quit: Textual IRC Client: www.textualapp.com)
522: [20:05:13] <Sphere> Hmmm, value of a hiddenfield is not set.
523: [20:05:17] <Sphere> Frustration all along :X
524: [20:08:09] * micmania1 has joined #silverstripe
525: [20:10:48] * helenclarko has joined #silverstripe
526: [20:11:32] * sealan quit (Remote host closed the connection)
527: [20:12:43] * JackOconnor quit (Quit: Leaving)
528: [20:16:46] * hailwood has joined #silverstripe
529: [20:22:14] <ss-helper> routing silverstripe using regex - http://stackoverflow.com/questions/33789432/routing-silverstripe-using-regex
530: [20:29:54] * UncleCheese has joined #silverstripe
531: [20:30:16] * Jakx quit (Quit: Leaving)
532: [20:35:31] * DanaeNZ has joined #silverstripe
533: [20:40:18] <helenclarko> Morning o/
534: [20:40:24] * DanaeNZ quit (Ping timeout: 272 seconds)
535: [20:41:59] * jules0x quit (Read error: Connection reset by peer)
536: [20:43:28] * jules0x has joined #silverstripe
537: [20:50:59] * terryapodaca1 has joined #silverstripe
538: [20:51:28] <terryapodaca1> o/
539: [20:52:15] <terryapodaca1> why is the number 1 being added to the end of my nick?
540: [20:52:30] * terryapodaca has joined #silverstripe
541: [20:56:48] <eolant> is it possible to have different summary fields of DataObject when it's viewed in ModelAdmin
542: [20:56:49] <eolant> ?
543: [20:59:09] * Stomach quit (Quit: zzz)
544: [21:07:49] * DanaeNZ has joined #silverstripe
545: [21:07:56] * jules0x quit (Read error: Connection reset by peer)
546: [21:09:29] * jules0x has joined #silverstripe
547: [21:09:54] * jules0x quit (Read error: Connection reset by peer)
548: [21:10:18] * jules0x has joined #silverstripe
549: [21:11:59] * jules0x quit (Read error: Connection reset by peer)
550: [21:12:26] * jules0x has joined #silverstripe
551: [21:17:35] * jules0x quit (Read error: Connection reset by peer)
552: [21:18:00] * jules0x has joined #silverstripe
553: [21:22:44] * terryapodaca1 quit (Quit: Later fellas......I'm out.)
554: [21:23:30] * terryapodaca1 has joined #silverstripe
555: [21:28:42] * darjusIT quit (Read error: Connection reset by peer)
556: [21:40:34] * Stomach has joined #silverstripe
557: [21:43:24] * nuxil quit (Quit: Forlater kanalen)
558: [21:49:37] <eolant> Is it possible to delete a field from GridField without deleting it from summary fields?
559: [21:53:25] * muskie9 quit (Quit: Textual IRC Client: www.textualapp.com)
560: [21:56:07] * confused has joined #silverstripe
561: [21:56:07] <ss-helper> confused: Welcome to #silverstripe! Please ask your questions but don't leave too soon, we are a busy lot.
562: [21:56:55] * UndefinedOffset quit (Quit: Leaving.)
563: [21:58:06] * DanaeNZ quit (Remote host closed the connection)
564: [21:58:26] * UndefinedOffset has joined #silverstripe
565: [21:58:27] <confused> Hey all just came across a weird thing in silverstripe 3.2 - If I have a page in my site tree at /parent-page/child-page Silverstripe will automatically sets up a redirect from /child-page to /parent-page/child-page
566: [21:58:41] <confused> is this a thing now?
567: [21:58:41] * UndefinedOffset quit (Client Quit)
568: [22:00:15] * DanaeNZ has joined #silverstripe
569: [22:14:00] * Stomach quit (Quit: zzz)
570: [22:23:34] * jules0x quit (Read error: Connection reset by peer)
571: [22:24:02] * jules0x has joined #silverstripe
572: [22:28:25] * Stomach has joined #silverstripe
573: [22:33:57] * confused quit (Ping timeout: 246 seconds)
574: [22:43:48] * Colin[pi] has joined #silverstripe
575: [22:43:55] <hailwood> Hey UncleCheese Are you around?
576: [22:44:00] <UncleCheese> hi
577: [22:44:03] <Colin[pi]> o/
578: [22:45:42] <hailwood> Hey Cheese, so, Kickassets still has the issue with bulkupload on gridfields, It's causing it to throw a request to /TheGridField/bulkupload/folderid which is throwing a wobbly due to "Action 'folderid' isn't available on class GridFieldBulkUpload_Request." Any ideas?
579: [22:48:08] <hailwood> I'm keen to help debug the issue, so if you need me to do anything let me know
580: [22:52:17] <ss-helper> Routing in SilverStripe using regex - http://stackoverflow.com/questions/33789432/routing-in-silverstripe-using-regex
581: [22:53:32] * spronk has joined #silverstripe
582: [22:56:37] * mahfuz has joined #silverstripe
583: [23:01:41] * muskie9 has joined #silverstripe
584: [23:04:43] * Azure quit (Quit: My Mac has gone to sleep. ZZZzzz…)
585: [23:09:57] * helenclarko quit (Read error: Connection reset by peer)
586: [23:12:43] <Colin[pi]> this is how I reckon UC feels right now when he comes on IRC http://i.imgur.com/QgJUL.gif
587: [23:13:37] * terryapodaca1 quit (Quit: Later fellas......I'm out.)
588: [23:14:06] * terryapodaca quit (Quit: Leaving.)
589: [23:14:46] * micmania1 quit (Quit: micmania1)
590: [23:18:21] * Azure has joined #silverstripe
591: [23:19:14] <DanaeNZ> Colin[pi]: omg i guessed the gif
592: [23:21:39] <Colin[pi]> DanaeNZ: http://i.imgur.com/vIf0lAD.gif
593: [23:22:02] <DanaeNZ> yesss
594: [23:24:42] * gelignite quit (Quit: http://bit.ly/1kso8Ta)
595: [23:27:03] <Colin[pi]> hmm erm... are hasEmptyDefault dropdowns broken in 3.2 for anyone else or just me?
596: [23:32:14] <Stomach> probably everyone
597: [23:32:32] <Colin[pi]> as in.. like, now I can't clear a selected value
598: [23:32:35] <Colin[pi]> which is a bit shit
599: [23:32:58] <Colin[pi]> <3.2 had a little X to clear it, 3.2 does not :\
600: [23:48:06] * muskie9 quit (Quit: Textual IRC Client: www.textualapp.com)
601: [23:57:12] * jules0x quit (Read error: Connection reset by peer)
602: [23:57:37] * jules0x has joined #silverstripe

These logs were automatically created by ss-log on irc.freenode.net.