I found the JavaScript Console in Chrome. I've been doing Java for over 15 years, but am still pretty new to JavaScript. :)
On Fri, May 17, 2013 at 2:37 PM, Mike Tutkowski < mike.tutkow...@solidfire.com> wrote: > 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> > *™* > -- *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> *™*