Pranav - Quick question for you (or, of course, anyone else who might know):
I've made some changes to the JavaScript and rebuilt the system. When I log into the GUI and look down at the Service Offerings tab at the bottom left, there is an icon, but no text. If I click on it, nothing is displayed. :) I'm not that familiar with JavaScript debugging. What do you suggest I do in such a situation to debug the problem? I've read and re-read my code looking for simple syntax errors and such, but don't see any. I did update from master this morning, so hopefully this is not just a problem that's in master at the time being and I didn't notice it until I made my changes. Thanks! On Fri, May 17, 2013 at 8:24 AM, Mike Tutkowski < mike.tutkow...@solidfire.com> wrote: > Thanks, Pranav! > > > On Thu, May 16, 2013 at 11:20 PM, Pranav Saxena > <pranav.sax...@citrix.com>wrote: > >> So within this block , you could use anyone of the exception handling >> mechanisms as shown below – **** >> >> ** ** >> >> >> $.ajax({ >> url:'API CMD', >> data:data , >> success:function(args){ >> args.response.success(); >> },**** >> >> >> error:function(args){ >> **** >> >> args.response.error(parseXMLHttpResponse(json)); // This >> would handle the exception handling when the API throws an error**** >> >> OR**** >> >> cloudStack.dialog.notice( { message:_l(‘ Minlops valus is >> greater than Max lops , please enter a correct value ‘) });**** >> >> } >> }); >> >> Thanks,**** >> >> Pranav**** >> >> ** ** >> >> *From:* Mike Tutkowski [mailto:mike.tutkow...@solidfire.com] >> *Sent:* Friday, May 17, 2013 10:44 AM >> *To:* Pranav Saxena >> >> *Subject:* Re: Example code for GUI**** >> >> ** ** >> >> Great, thanks!**** >> >> ** ** >> >> One quick question comes to mind: If the criteria I'm checking fails, is >> there a way I should exit the code block and have an error message >> displayed or should those kinds of problems be returned once the API call >> is executing on the server side?**** >> >> ** ** >> >> Thanks again!**** >> >> ** ** >> >> On Thu, May 16, 2013 at 10:59 PM, Pranav Saxena <pranav.sax...@citrix.com> >> wrote:**** >> >> Yeah , so these dependencies/relationships would be handled when you are >> passing these parameters to the API call within the actions block. Below is >> the code snippet which will help you accomplish your tasks (might require >> little tweaking ) but that's how the structure should look like . >> >> action: function(args) { >> var dataObj = { >> minlops: args.data.minlops, >> maxlops:args.data.maxlops, >> burstlops:args.data.burstlops >> >> }; >> >> if(args.data.minlops != "" && args.data.maxlops !="" && >> args.data.burstlops !="") { >> >> if(args.data.maxlops >= args.data.minlops){ >> $.extend(data, dataObj) >> }); >> } >> } >> >> $.ajax({ >> url:'API CMD', >> data:data , >> success:function(args){ >> args.response.success(); >> },**** >> >> >> >> >> }); >> >> >> Let me know if you need any more help. >> >> Thanks, >> Pranav**** >> >> >> -----Original Message----- >> From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]**** >> >> Sent: Friday, May 17, 2013 9:40 AM >> To: dev@cloudstack.apache.org >> Subject: Re: Example code for GUI**** >> >> Hi Pranav, >> >> Thanks for posting the link to your commit, as well. :) >> >> I'm trying to set up my fields based on the pattern we already have today >> where the Admin can check a box to allow the User to specify a disk size. >> >> In my case, I'd like the Admin to check a box if he wants the User to >> potentially specify Min, Max, and Burst IOPS. The trick is that Min, Max, >> and Burst IOPS should either all be filled in or none of them filled in >> (and Max has to be >= Min and Burst has to be >= Max). Right now, I'm >> playing around with code that makes these three fields depend on the >> checkbox (if it's checked, they get displayed). Can you teach me a bit >> about how I might specify the relationships I'm looking for? >> >> Thanks! >> >> Here's what I have right now (I believe it handles displaying the IOPS >> fields if the checkbox is selected, but that's about it): >> >> isIopsCustomized: { >> label: 'label.custom.disk.iops', >> docID: 'helpDiskOfferingCustomDiskIops', >> isBoolean: true, >> isReverse: true, >> isChecked: false >> }, >> minIops: { >> label: 'label.disk.iops.min', >> docID: 'helpDiskOfferingDiskIopsMin', >> dependsOn: 'isIopsCustomized', >> validation: { required: true, number: true } >> }, >> maxIops: { >> label: 'label.disk.iops.max', >> docID: 'helpDiskOfferingDiskIopsMax', >> dependsOn: 'isIopsCustomized', >> validation: { required: true, number: true } >> }, >> burstIops: { >> label: 'label.disk.iops.burst', >> docID: 'helpDiskOfferingDiskIopsBurst', >> dependsOn: 'isIopsCustomized', >> validation: { required: true, number: true } >> }, >> >> >> On Thu, May 16, 2013 at 8:40 PM, Pranav Saxena <pranav.sax...@citrix.com >> >wrote: >> >> > Hey Ilya , >> > >> > So this is how you declare the following items - >> > >> > <object name> :{ >> > >> > createForm:{ >> > >> > fields:{ >> > >> > //CheckBox Item >> > <item object name> :{ >> > Label:'Label Name', >> > isBoolean:true, // This statement creates a >> checkbox >> > for you >> > isChecked: true // make it false for the checkbox >> to >> > be unchecked by default >> > >> > >> > >> > }, >> > >> > //Drop Down >> > <itemobjectname2>:{ >> > Label:'label name2', >> > select:function(args):{ >> > var items=[]; >> > items.push(id:'memory' , description: 'the >> > description appears in the drop down'); >> > >> > } >> > } >> > } >> > } >> > >> > } >> > >> > The actual handling is done by the widgets (dialog.js) , once you >> > follow the above mentioned code structure . In case you want to design >> > a multi-edit table (entering multiple values in a single table ), the >> > structure for that is prepared by another widget (multiEdit.js) . That >> > has a slightly complex way to invoke the relevant widget functions. >> > Let me know in case you need any more information on this . The CPU >> > overcommit and memory overcommit feature was committed by me . Here >> > is the commit - >> > >> > https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=blobdiff;f= >> > ui/scripts/system.js;h=d76aa3e6a2e8d0d009728174f07d600c28febd89;hp=e51 >> > bf90ba81445f176607823857e38f930d17c11;hb=215621daa88883dde4f09d55fde49 >> > e0bf0cd75f5;hpb=2beb66fd32bd8b176a7b4eff2d0a34aa4d278045 >> > >> > Let me know if you need any more help on this . >> > >> > Thanks, >> > Pranav >> > >> > -----Original Message----- >> > From: Musayev, Ilya [mailto:imusa...@webmd.net] >> > Sent: Friday, May 17, 2013 6:56 AM >> > To: dev@cloudstack.apache.org >> > Subject: Re: Example code for GUI >> > >> > Thanks Isaac >> > Regards >> > Ilya >> > >> > >> > >> > -------- Original message -------- >> > From: Isaac Chiang <isaacchi...@gmail.com> >> > Date: >> > To: dev@cloudstack.apache.org,"Musayev, Ilya" <imusa...@webmd.net> >> > Subject: Re: Example code for GUI >> > >> > >> > Hi Musayev, >> > You'll find out that there are "createForm" object under >> > listView(or detailView) actions in each file, e.g., instance.js, >> > accounts.js. If you need a selection, you can just define a attribute >> > for createForm like following: >> > >> > select: function(args) { >> > //... >> > } >> > >> > and pass returned data from ajax call to >> > >> > args.response.success({data: 'your json data'}) >> > >> > Then the CS's frontend engine will make a selection for you. >> > >> > Regards >> > >> > Isaac >> > >> > >> > On Fri, May 17, 2013 at 7:48 AM, Musayev, Ilya <imusa...@webmd.net> >> wrote: >> > >> > > Thank you Wei . >> > > >> > > Any idea on how can I change the field type from in UI from text >> > > field to multi-select or checkbox group? Is this CSS only change or >> > > is there more to it? >> > > >> > > >> > > >> > > -------- Original message -------- >> > > From: Wei ZHOU <ustcweiz...@gmail.com> >> > > Date: >> > > To: dev@cloudstack.apache.org >> > > Subject: Re: Example code for GUI >> > > >> > > >> > > From my point view: >> > > >> > > (1) UI: >> > > ui/scripts/*.js (such as network.js, configuration.js) >> > > ui/dictionary.jsp >> > > client/WEB-INF/classes/resources/messages.properties >> > > >> > > (2) Java >> > > *Cmd.java (commands) >> > > *VO.java (tables) >> > > *Manager.java >> > > *ManagerImpl.java >> > > >> > > Wei >> > > >> > > >> > > 2013/5/17 Musayev, Ilya <imusa...@webmd.net> >> > > >> > > > We actually have a similar question on the GUI part, we've done >> > > > lots of backend work, but the GUI part does not seem very >> > > > straightforward. Would someone know how to add options into GUI? >> > > > >> > > > Also, How can I change the field type from in UI from text field >> > > > to multi-select or checkbox group? What is the controlling >> > > > configuration >> > > file? >> > > > >> > > > If you can mention general flow on making GUI changes/addition and >> > > perhaps >> > > > point to an example, it would be truly appreciated. >> > > > >> > > > Thanks >> > > > ilya >> > > > >> > > > > -----Original Message----- >> > > > > From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com] >> > > > > Sent: Thursday, May 16, 2013 6:26 PM >> > > > > To: dev@cloudstack.apache.org >> > > > > Subject: Re: Example code for GUI >> > > > > >> > > > > It looks like your feature revolves around rate limiting, if I >> > > understand >> > > > > correctly. >> > > > > >> > > > > It seems like I could leverage a bit of what you're doing here, >> > > > > but I'd >> > > > need >> > > > > additional fields in the Add Disk Offering dialog (and DB) since >> > > > > we >> > > > support >> > > > > min, max, and burst values for IOPS (as opposed to just a max). >> > > > > >> > > > > What do you think? >> > > > > >> > > > > >> > > > > On Thu, May 16, 2013 at 4:18 PM, Mike Tutkowski < >> > > > > mike.tutkow...@solidfire.com> wrote: >> > > > > >> > > > > > Thanks for the info, Wei. >> > > > > > >> > > > > > I am in the process of writing a storage plug-in for Edison's >> > > > > > new storage framework. The idea is to be able to have a single >> > > > > > SAN volume associated with a single data disk. In our SAN, you >> > > > > > can set Min, Max, and Burst IOPS values on a volume-by-volume >> > > > > > basis and I'd like to see CloudStack support this. >> > > > > > >> > > > > > Can you tell me a bit about how you see our features >> overlapping? >> > > > > > Perhaps I will not need to update the GUI at all because you >> > > > > > might already be putting in place such new fields? >> > > > > > >> > > > > > Thanks! >> > > > > > >> > > > > > >> > > > > > On Thu, May 16, 2013 at 4:13 PM, Wei ZHOU >> > > > > > <ustcweiz...@gmail.com> >> > > > > wrote: >> > > > > > >> > > > > >> Mike, >> > > > > >> >> > > > > >> I am working on Disk I/O Throttling now. The source code has >> > > > > >> been verified on 4.0.2. It need more test on master branch. >> > > > > >> I hope to finish it before the deadline of 4.2 feature freeze >> > > > (31-5-2013). >> > > > > >> >> > > > > >> For more information: >> > > > > >> https://issues.apache.org/jira/browse/CLOUDSTACK-1301 >> > > > > >> >> > > > > >> >> > > > > https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+I >> > > > > O+ >> > > > > Th >> > > > > r >> > > > > >> ottling >> > > > > >> >> > > > > >> Wei >> > > > > >> >> > > > > >> >> > > > > >> 2013/5/16 Mike Tutkowski <mike.tutkow...@solidfire.com> >> > > > > >> >> > > > > >> > Hi everyone, >> > > > > >> > >> > > > > >> > I'm trying to add a few fields to the GUI's Add Disk >> > > > > >> > Offering dialog >> > > > > >> (min, >> > > > > >> > max, and burst IOPS). >> > > > > >> > >> > > > > >> > Once I have these fields in place, they will of course need >> > > > > >> > to >> > > pass >> > > > > >> > this information to the backend and the data will need to >> > > > > >> > end up >> > > in >> > > > > >> > new >> > > > > >> fields >> > > > > >> > in the DB. >> > > > > >> > >> > > > > >> > I was wondering if anyone knew of example code I might be >> > > > > >> > able to >> > > > > >> pattern >> > > > > >> > my changes off of. The one that comes to mind is CPU and >> > > > > >> > RAM overcommit changes to the Add Cluster dialog (but I'm >> > > > > >> > having a >> > > hard >> > > > > >> > time tracking these down in Git). >> > > > > >> > >> > > > > >> > Thanks! >> > > > > >> > >> > > > > >> > -- >> > > > > >> > *Mike Tutkowski* >> > > > > >> > *Senior CloudStack Developer, SolidFire Inc.* >> > > > > >> > e: mike.tutkow...@solidfire.com >> > > > > >> > o: 303.746.7302 >> > > > > >> > Advancing the way the world uses the >> > > > > >> > cloud<http://solidfire.com/solution/overview/?video=play> >> > > > > >> > *(tm)* >> > > > > >> > >> > > > > >> >> > > > > > >> > > > > > >> > > > > > >> > > > > > -- >> > > > > > *Mike Tutkowski* >> > > > > > *Senior CloudStack Developer, SolidFire Inc.* >> > > > > > e: mike.tutkow...@solidfire.com >> > > > > > o: 303.746.7302 >> > > > > > Advancing the way the world uses the >> > > > > > cloud<http://solidfire.com/solution/overview/?video=play> >> > > > > > *(tm)* >> > > > > > >> > > > > >> > > > > >> > > > > >> > > > > -- >> > > > > *Mike Tutkowski* >> > > > > *Senior CloudStack Developer, SolidFire Inc.* >> > > > > e: mike.tutkow...@solidfire.com >> > > > > o: 303.746.7302 >> > > > > Advancing the way the world uses the >> > > > > cloud<http://solidfire.com/solution/overview/?video=play> >> > > > > *(tm)* >> > > > >> > > > >> > > >> > >> >> >> >> -- >> *Mike Tutkowski* >> *Senior CloudStack Developer, SolidFire Inc.* >> e: mike.tutkow...@solidfire.com >> o: 303.746.7302 >> Advancing the way the world uses the >> cloud<http://solidfire.com/solution/overview/?video=play> >> *(tm)***** >> >> >> >> **** >> >> ** ** >> >> -- >> *Mike Tutkowski***** >> >> *Senior CloudStack Developer, SolidFire Inc.***** >> >> e: mike.tutkow...@solidfire.com**** >> >> o: 303.746.7302**** >> >> Advancing the way the world uses the >> cloud<http://solidfire.com/solution/overview/?video=play> >> *™***** >> > > > > -- > *Mike Tutkowski* > *Senior CloudStack Developer, SolidFire Inc.* > e: mike.tutkow...@solidfire.com > o: 303.746.7302 > Advancing the way the world uses the > cloud<http://solidfire.com/solution/overview/?video=play> > *™* > -- *Mike Tutkowski* *Senior CloudStack Developer, SolidFire Inc.* e: mike.tutkow...@solidfire.com o: 303.746.7302 Advancing the way the world uses the cloud<http://solidfire.com/solution/overview/?video=play> *™*